|Subject Area||Software and Information System Engineering|
|Semester||Semester 8 – Spring|
The course focuses on software design and implementation processes, from conception to design, engineering, testing, customer delivery, and software management over the course of its life.
The course approaches the subject at a theoretical and practical level.
- Software production processes, such as the cataract model, evolutionary development, iterative development processes, incremental development, and more.
- Emerging production processes such as agile design and extreme programming.
- Project management procedures, such as time scheduling, human resource management, work plan development, milestone setting, and risk management.
- System modelling procedures. System models: thematic models, flow models, object models, stimulus-response patterns, and others.
- Specifications and requirements extraction and definition processes, including feasibility analysis, system views, stakeholder interviews, use case development, corporate influences, and others.
- Architectural system design models: the repository model, the client-server model, the very flat model, and more.
- Control styles such as centralized control and event-based control.
- Software design for reuse.
- Component based and COTS based software design.
- Object-oriented design, UML modelling.
- Software testing methodologies and procedures: system testing, component testing, and integration testing.
The course focuses on the software development process from conception to delivery to the customer and subsequent software management throughout its lifetime.
Upon successful completion of the course the student will be able to understand and apply:
- Traditional software production processes such as cataract model, evolutionary development, iterative development, implementation based on increments, and more
- Emerging software production processes such as agile design and extreme programming
- Software requirements extraction processes
- Project management procedures
- Software modeling
- Software architecture
- Software design for reuse
- Component-based software design and COTS design
- Software testing methodologies