Beruflich Dokumente
Kultur Dokumente
9/3/2012
Agenda
2
Introduction
9/3/2012
Introduction
3
late 1960s.
The problems in managing a large development project led to increases in
9/3/2012
a high quality software system with a given budget before a given deadline
9/3/2012
Abstraction
Anticipation of change Generality Incrementality
9/3/2012
Rigor helps to produce products with higher reliability, greater quality while controlling costs and meeting
expectations.
Separation of concerns
7
one at a time.
Divide & conquer. Supports parallelization of efforts and separation of
responsibilities.
9/3/2012
Modularity
8
modules
A system that is composed of modules is called modular Supports application of separation of concerns
9/3/2012
A visual representation
10
(a)
(b)
High coupling
Low coupling
9/3/2012
Abstraction
11
details.
Special case of separation of concerns. The type of abstraction to apply depends on purpose.
9/3/2012
Anticipation of change
12
9/3/2012
Generality
13
case .
9/3/2012
Incrementality
14
Deal first with functionality, then turn to performance. Deliver a first prototype and then incrementally add effort to turn
9/3/2012
Example -Compiler
15
9/3/2012
Other concerns
Efficiency of compiler and of generated code User friendliness (helpful warnings, etc.)
Example: runtime assertion checking Diagnostics simplify testing, but create overhead Typical solution: option to disable checks
9/3/2012
Modularity: Compiler
17
High cohesion: common functionality in each phase Low coupling: pipe-and-filter architecture, symbol table Symbol Table
Source code
Lexical Analysis Parsing Semantic Analysis
object code
Code Generation
9/3/2012
Abstraction: Compiler
18
9/3/2012
Abstraction: Compiler
19
Code Generation
Intermediate Code Generation Co Optimization Assembler Code Generation
9/3/2012
Typical changes
9/3/2012
Runtime diagnostics
Optimizations
9/3/2012
Implementation
System Testing Maintenance
9/3/2012
Requirement Analysis
The focus of this stage is on the needs of the users of the
system .
The requirements specify what the system must do, but not
9/3/2012
System Specification
The goal of this stage is to formulate a precise description of the desired
system.
The requirements analysis step looks at the system from the point of view
9/3/2012
System Design
Implementation
In this stage of the development process ,the individual modules or objects
described by the design process are coded and preliminary testing is done.
9/3/2012
System testing
This phase is usually the most expensive and time consuming part of the
Maintenance
This is the last phase of the Software life-cycle model. Maintenance can be made much easier and less costly by the presence of good
documentation.
The document created during the system development should be kept throughout the lifetime of the system.
9/3/2012
Types of specifications
Input specifications
Label Operation An
field
instruction operand
Source program
9/3/2012
Output specifications
Current location Object program
Quality specifications
Processing time
9/3/2012
Source program
9/3/2012
P1_read_src
P1_assign_loc
P1_assign_ sym
Access_int _file
P2_assemb le_inst
P2_write_ obj
P2_write_list
Access_symtab
P2_search_optab
9/3/2012
System Testing
31
code.
These are almost too complex to be debugged effectively all at once , when
error occur there are too many places to look for them.
Most of systems are tested in a series of stages. In each stage the amount of code being debugged is kept small. So it can be
9/3/2012
Levels of Testing
32
Unit Testing
Black box testing
White box testing
- Alpha testing
- Beta testing
Acceptance Testing
9/3/2012
9/3/2012
Conclusion
34
Thus System Software also has the principles for its design.
Software Engineering Principles are not only applicable to
9/3/2012
Reference
35
Programming.
http://www.d.umn.edu/~gshute/softeng/principles.html
9/3/2012
36
Thank You
9/3/2012