top of page
scarabocchio-di-ingegneria-del-software_edited_edited_edited_edited_edited_edited.png
Computer Programming

Hi,

My aim, in this course, is to provide a general introduction to software engineering.  Within the ten weeks at our disposal, I will introduce important concepts such as software processes development,  testing, and management,  while describing the essential software design and modeling activities, from requirements specification through to software quality.

Course Overview

The objective of this course is to introduce to the students a limited number of concepts and practices related which will achieve the following two objectives:

  • Teach the student the skills needed to execute a commercial software project.

  • Provide the students with the necessary conceptual background for undertaking advanced studies in software engineering, through courses, or on their own.

​

I have included in this course only those concepts that are foundational and through which the two objectives mentioned above can be met. As executing a software project requires skills in two dimensions—engineering and project management—this course focuses on key tasks in these two dimensions, and discusses concepts and techniques that can be applied to effectively execute these tasks.

​

For engineering, these tasks are requirements analysis and specification, architecture design, software development processes, testing. For project management, the key tasks are project planning and project monitoring and control.

​

Course Learning Objectives are:

  • Communicate technical information orally and in writing.

  • Synthesize requirements for a realistic software system and write a requirements specification document

  • Select the most appropriate software process model to use in a particular situation

  • Model system requirements using one or more semi-formal notations such as UML, dataflow diagrams, entity-relationship diagrams, or state diagrams

  • Design software systems at an architectural level and at lower levels, using one or more techniques, such as object-oriented design or agile methods, and express these designs in design specification documents

  • Validate designs and adjust the specification or design as necessary

  • Describe several methods of estimating the cost and developing a schedule for a programming project

  • Participate effectively in a team environment

  • Produce professional-quality software-related documents

  •  

Course Content:

  • The scope and the need for software engineering

  • Software engineering processes

  • Agile software development

  • Requirements engineering

  • System modeling and diagram notations

  • Software architecture

  • Project management

  • Project planning

  • Software testing

  • Quality management

​

Suggested books

For a good introduction to software engineering, let’s start with a classic introduction for undergraduate students.

​

  • Software Engineering by Ian Sommerville, Addison Wesley.

  • Software Engineering: Theory and Practice by Shari Lawrence Pfleeger & Joanne M., Pearson Education, 2010.

  • Software Engineering: Principles and Practice by Hans van Vliet, 3rd edition, John Wiley & Sons, 2008.

 

​

Contact

I'm always looking for new and exciting opportunities. Let's connect.

123-456-7890 

  • linkedin

<my first name>.de.amicis at gmail.com

+1 (541) 737-0741

+1 (541) 737-1300

Corvallis, OR, USA

©2017 BY RAFFAELE DE AMICIS

bottom of page