Principal themes | Prerequisites | Approaches the learning objectives | Reaches the learning objectives | Deepens the learning objectives |
---|---|---|---|---|
Software engineering in society | • Can list the most significant highlights in the history of software technology. • Can list positive and negative effects that software has had on human actions. |
• Recognise the various directions software technology has taken and is taking. • Recognise ethical characteristics of software engineering and can explain how they are viewed. |
• Can interpret how a given software implementation will affect its surroundings. • Can assess the quality and social significance of the sets of codes for professional ethics presented by ACM, IEEE etc. |
|
Software processes and project management | • Can explain the difference between process models, processes, and projects. • Can explain the basic tasks of software process models. • Can select the most suitable software process model out of several for the development of a certain software project and/or maintenance, and justify the selection. • Can explain the workings of project management. • Know the primary duties of a project manager. • Know the basics of risk analysis. • Know the concept of a prototype. |
• Can compare different ways and techniques of ensuring software quality. • Can explain the differences between quality attributes. • Know the graphical presentations of project management and can use them to plan the schedule for a project. • Can compare process models objectively. • Know the basics of software metrics and result assessment. • Know the basics of process improvement. |
• Can use the literature in the field to find out modern views of processes and process models. • Can explain why the management of software projects is more difficult than other engineering projects. • Can assess the maturity level of a given process. |
|
Software project lifespan | Basics of object-oriented programming (Introduction to programming) | • Can explain the differenc ebetween different requirement types. • Can explain the difference between verification and validation. • Can explain the roles of the control process and its participants. • Know the basics of the testing process. • Can explain why we need levels of abstraction in planning. • Know the work phases and methods of the requirements specification process. |
• Recognise the connection between requirements and quality attributes. • Can analyse why the requirements may be in conflict with each other. • Can separate the levels, stages, and methods of testing of medium software. • Can explain the difference between black-box and glass-box testing. • Can explain why interface design is especially important. |
• Can interpret a software specification represented in a formal method into natural language.
|
Software evolution | • Recognise the reasons for software evolution and how it affects the lifespan of software. • Can explain the pros and cons of software and component re-use. |
• Can explain the challenges with maintenance of a traditional system. • Can explain the necessity for renewing software and its work phases. |
• Can give an estimate of how a request for changes to medium software will affect the product. • Can develop a project plan for renewing a medium piece of software on the basis of a request for change. |