Beruflich Dokumente
Kultur Dokumente
Huzefa Kagdi, Ph.D. Department of Electrical Engineering and Computer Science Wichita State University Wichita, KS, USA
General Issues
A large number of software projects fail
Never delivered/completed Do not meet requirements or user needs Excessive failures (bugs) Excessively over budget or late
Text
Quality and reliability of many software systems cannot be formally assessed Prolonged Software Crisis
Software Engineering
Application of a systematic, disciplined, quantiable approach to the development, operation, and maintenance of software [IEEE]
Quality Focus Process Methods Tools
Text
A Layered Approach
Focus on quality
e.g., space craft navigation vs. word processor
Text
Text
Text
A structured approach to the development of software products and associated artifacts A structured set of activities or tasks required to develop a software system
[Sommerville]
Text
Text
Domain Analysis
What is the software product about?
e.g., stock market, student registration, and poker
Text
Effective communication between developers and customers Extract and align solution vocabulary Reduce/void misconception and preconception about overloaded terms
e.g., What does football mean?
10
Text
11
Text
12
Text
13
Text
Implementation
Realization of an operational system according to the design Selection of implementation technologies Involves programming/coding Resultant artifacts includes source code, build system, executables, and distribution documents
Text
15
Testing
Goal is to uncover defects/bugs as early as possible (and NOT to show that a system is bug free!) Involves unit, integration, and acceptance testing Resultant artifacts are test cases and/or test suites
Text
16
Deployment
Release the software in the production environment May occur at the producer site or consumer site or both (e.g., push updates via Internet) Artifacts may include FAQs, ChangeLogs May need Customer support
Text
17
Maintenance
All software evolves over time Corrective - x uncovered defect Adaptive - Platform change Enhancement - Perfective, additional functionality Preventive - re-engineering, make system more maintainable
Text
18
Text
19
Text
(a) Between 1976 and 1981 (b) Between 1992 and 1998
20
Text
21
Text
22
Waterfall Model
A sequential ow of activities Main Activities in life cycle
Requirements specication Design Construction (implementation) Integration Testing and debugging (validation) Installation Maintenance
23
Supporting Points
Time spent early is time (and effort) saved later
e.g., detect bugs early in the process
Text
Emphasis on documentation Straightforward Feasible for a specialized domains with wellunderstood (and infrequently changed) requirements
e.g., mission-control defense or space projects
24
Opposing Points
Fragile against changing requirements and needs (moving target!) Some design issues and problems become known only during implementation Customers/end users may not get to see and provide feedback until (too) late in the process McConnell and Parnas criticisms
Text
25
Spiral Model
Text
26
Text
Iterative/Incremental Model
Cyclic ow of activities An essential set of requirements implement the initial version/iteration Rene existing, and add new, functionality via more iterations Each iteration produces a deliverable to the customers/end users Includes Agile Methods such as XP and SCRUM
28
Iteration
Text
Requirements Design Implementation & Test & Integration & More Design Final Integration & System Test Time
Requirements Design Implementation & Test & Integration & More Design Final Integration & System Test
Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1.
3 weeks (for example) Iterations are fixed in length, or timeboxed. The system grows incrementally.
29
Timeboxed Iterations
Text
30
Iteration
Short iteration lengths
Two to six weeks Rapid feedback and adaptation. Long iterations increase project risk.
Text
31
Development/Evolution Path
Text
Early iterations are farther from the "true path" of the system. Via feedback and adaptation, the system converges towards the most appropriate requirements and design.
In late iterations, a significant change in requirements is rare, but can occur. Such late changes may give an organization a competitive business advantage.
32
Example Schedule
1 2 3 4 5 ... 20 requirements workshops Imagine this will ultimately be a 20iteration project. In evolutionary iterative development, the requirements evolve over a set of the early iterations, through a series of requirements workshops (for example). Perhaps after four iterations and workshops, 90% of the requirements are defined and refined. Nevertheless, only 10% of the software is built.
Text
requirements
requirements
software
software
90%
90%
50% 20% 2% Iteration 1 30% 5% Iteration 2 a 3-week iteration 8% Iteration 3 10% Iteration 4 20% Iteration 5
week 1 M T W Th F
week 2 M T W Th F
week 3 M T W Th F
final check-in and codefreeze for the iteration baseline Use-case modeling during the workshop
33
Supporting Points
Change centric and driven Constant feedback Operational version after each increment No big bang integration effort Short (requirement and design) fault incubation and/or hibernation period Improved time to market No Big Design Up Front (BDUF) Used in the development of a number of ubiquitous software products today
34
Text
Opposing Points
Communication overhead for feedback Need to be careful of feature creep
Text
35
Text
36
Standards
Capability Maturity Model (CMM)
accesses how well an adopted process is followed and not how good it is? superseded by CMMI(Interface), which provides standards to organize processes with documentation
Text
Six Sigma
Improve operational performance via statistical analysis Goal is to reduce defects largely used in manufacturing
37
Text
Questions/Comments/Thoughts?
38
Credits
Text
Some contents adopted from Wikipedia, Applying UML and Patterns - Larman, Software Engineering: A Practitioners Guide Pressman, and Dr. Jonathan I. Maletics slides.
39