|
Module Delivery |
Autumn |
|
|
Assessment Requirements |
Components of Assessment
|
Method(s)
|
Examination
|
2-hr unseen paper
|
Computer-based coursework
|
Two laboratory assignments completing the tasks introduced in the timetabled lab sessions, plus web-based group design activities.
|
|
|
|
Module Overview |
|
|
|
Prerequisites/Co-requisites |
Some experience of procedural computer programming, e.g., C. |
|
|
Module Aims |
to teach the analysis and design techniques needed for developing large software systems with a view to equipping students with the technical knowledge to manage complex software development projects. |
|
|
Learning Outcomes |
on completion a successful student should be able to:
- describe and evaluate common software development processes, and identify common mistakes in software development;
- produce and interpret design representations;
- select the appropriate design viewpoint and representation to use;
- evaluate the quality of a software design;
- develop a testing strategy for a piece of software.
|
|
|
Module Content |
PLANNING
Development process
Software development lifecycle. Rationale for design processes and methodologies. Prototyping. Common problems and issues with software development.
ANALYSIS
Use of representations for analysis & design
Translation between textual and graphical design representations of a system. Design viewpoints: process, data and state. Logical and physical designs.
Common design representations
Pseudo code, Data flow diagram (DFD), Entity relationship diagram (ERD), Structure chart, Jackson structure diagram (JSD), State transition diagram (STD), Unified modeling language (UML).
DESIGN
Design methods & strategies
Jackson structured programming (JSP). Structured system analysis and structured design (SSA/SD). Hierarchical object-oriented design (HOOD): polymorphism, encapsulation and inheritance. Formal methods.
Design quality
Assessing design quality: simplicity, modularity, coupling, cohesion and information hiding.
IMPLEMENTATION
Testing & quality assurance
Stages of testing: unit, integration and acceptance. Approaches: black box and white box. Standards of quality assurance and software practice. |
|
|
Methods of Teaching/Learning |
Lectures (11 weeks, 2 hr/week), laboratories (two 1-hr sessions) and laboratory assignments, web-based exercises and tutorial sheets.
|
|
|
Selected Texts/Journals |
Dennis A & Haley-Wixom B. Systems Analysis & Design: an applied approach [0-471-24100-8]. Wiley & Sons
Budgen, D. Software Design [0-201-54403-2]. Addison-Wesley
Sommerville, I. Software Engineering [0-201-39815-x]. Addison-Wesley
Pressman, R.S. Software Engineering: a practitioner's approach [0-073-65578-3]. Addison-Wesley
Gamma, E. et al. Design Patterns: elements of reusable object-oriented software [0-201-63361-2]. Addison-Wesley |
|
|
Last Updated |
15th August 2006 |
|