Drexel University
CS 451 Software Engineering Winter 2009
1
CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, - - PowerPoint PPT Presentation
CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Drexel University Design within the Context of Software Engineering 2 Drexel University Software Design Between
Drexel University
1
Drexel University
2
Drexel University
Between Requirement and Coding Including:
Data Design Architectural Design Interface Design Component Design
Need to be modeled, analyzed, and reviewed in
3
Drexel University
4
Data/ Class Design Architecture Design Interface Design Component Design
Drexel University
5
Drexel University
Software design is an iterative process through
Abstraction Refinement
6
Drexel University
A design must implement all of the explicit requirements
A design must be a readable, understandable guide for
The design should provide a complete picture of the
7
Drexel University
FURPS – Functionality, Usability, Reliability,
Functionality – assessed by evaluating:
the feature set capabilities of the program.
Usability - assessed by considering:
human factors, overall aesthetics, consistency, end-user documentation.
8
Drexel University
Reliability – is evaluated by measuring:
the frequency and severity of failure, the accuracy, of output results, the mean-time-to-failure, the ability to recover from failure, the predictability of the program.
Performance – is measured by:
processing speed, response time, resource consumption, throughput, efficiency
9
Drexel University
Supportability – combines:
the ability to extend the program (extensibility), adaptability, testability, compatibility, configurability.
10
Drexel University
11
Drexel University
Abstraction Architecture Patterns Modularity Information Hiding Functional Independence Refinement Refactoring
12
Drexel University
“Abstraction is one of the fundamental ways that
“What kinds of things do we abstract?
data objects procedures modules just about anything
13
Drexel University
Software architecture alludes to “the overall
Architecture is:
the structure or organization of program components
the manner in which these components interact, the structure of data that are used by the
14
Drexel University
“A pattern is a named nugget of insight which conveys
“Each pattern describes a problem which occurs over
15
Drexel University
MODULARITY
“Modularity is the single attribute of software that
Software is divided into separately named and
16
Drexel University
Modules should be specified and designed so that
This means that inadvertent errors introduced during
Changes to the internal representation of one module
17
Drexel University
Functional independence is achieved by
We want to design software so that each module
18
Drexel University
Independence is assessed by using two
Cohesion – How related a module is to itself. It should
Coupling is an indication of the interconnectoin
19
Drexel University
Stepwise refinement is when a program is
Refinement is actually the process of
20
Drexel University
Refactoring is a reorganizational technique that
21
Drexel University
Drexel University
There can be only one reason for a class to
Drexel University
Classes and methods should be open for
Drexel University
Every function or method which expects an
Drexel University
Classes should not depend on interfaces that
Drexel University
High level classes should not depend on low
Drexel University
28