581259 Software Engineering

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.
• Know the primary methods for object-based testing.
• Can assess the goodness of the design of various sioftware on the basis of the solutions they use.


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.


28.09.2011 - 14:37 Marina Kurtén
31.08.2011 - 10:46 Matti Luukkainen