Software Analysis and Design
Analysis and design are activities included in the software development process. Development refers to the phases of the software life cycle that are responsible for the construction of the software systems. Excluded from the development are, for example, the economic viability studies, the maintenance tasks, and the effective utilisation of the systems.
This 30-ECTS unit is organised around four scientific areas defined in the
IEEE/ACM Curriculum Guidelines for Software Engineering [SE 2004]:
- MAA -- Software Modeling & Analysis
- DES -- Software Design
- VAV -- Software V&V
- PRF -- Professional Practice
To attend this unit, students must have the skills and the competence associated with the following SEEK (
Software Engineering Educational Knowledge) Areas [SE 2004]:
- CMP -- Computing Essentials (Computer Science foundations, Construction technologies, Construction tools, Formal construction methods)
- FND -- Mathematical & Engineering Fundamentals (Mathematical foundations, Engineering foundations for software, Engineering economics for software)
These skills are typically obtained, for example, at undergraduate degrees in Computer Science, Computer Engineering, or Information Systems.
More concretely, students are expected to be able to construct programs using rigourous specification methods and programming languages and to put in execution the written programs, with adequate tools (editors, compilers, interpreters, debuggers, IDEs).
The student interested in this unit is the one that, after some learning topics in computer programming , wishes to complement his/her technologic skills, with a engineering-oriented focus towards the pre-implementation development activities (software engineer, requirements engineer, system analyst, software architect).
The assessment is achieved through a global exam that covers all the topics addressed in the unit.
Scientific Coordination
Objectives
This curricular unit on Software Analysis and Design has as its main goal to allow students to acquire technologic, scientific and practical competence, within the development of highly-complex software systems, and more specifically in the analysis and design tasks, in order to obtain correct and reliable solutions based on sound engineering principles.
Learning Outcomes
- To elicit and capture the requirements of a system, to document them in a such a way that guarantees that they correctly describe the system under consideration, and to validate them with, for example, inspections or formal revisions.
- To formally model the requirements of a software systema and to reason with those model, using prototyping environments.
- To construct and evaluate prototypes of interactive systems with respect to some usability requirements and objectives.
- To construct an architecture of software components that allow the acquired requirements to be implemented and permit the system to evolve and be maintained in an economic and controlled way.
- To construct correct software systems, according to the user's needs, through a combination of analysis, design, programming, validation, and test activities.
Internal Modules
This curricular unit is organized around 4 thematic modules, each one corresponding to 5 ECTS, integrated
by a project that guarantees the experimentation and practical application e aplicação prática dos resultados da aprendizagem. The modules are:
- Requirements Analysis and Modelling (AMR) - 5 ECTS
- Software Architectures (AS) - 5 ECTS
- Formal Methods in the Software Project (MFPS) - 5 ECTS
- Usability and Interaction (UI) - 5 ECTS
- Integrated Project (PI) - 10 ECTS
-- 09 May 2007