TOPIC 2: Software Development Life Cycleportal.unimap.edu.my/portal/page/portal30/Lecturer...
Transcript of TOPIC 2: Software Development Life Cycleportal.unimap.edu.my/portal/page/portal30/Lecturer...
EKT 421 :SOFTWARE ENGINEERING
TOPIC 2:Software Development Life
Cycle
School of Computer & Communication Engineering
Semester: 2-2015/2016
Learning Outcome
By the end of this session, you should be able to:
1.Describe various models in the software development process;2.Explain the importance of software reuse;3.Identify suitable strategies for application development; and4.Discuss the non-traditional software development process.
Content
1)Software Development Process Model ; traditional vs non-traditional
2)Software Reuse3)Strategy for Application Development4)Non-Traditional Development Process.
CODE-AND-FIX MODEL
THIS MODEL WAS FOUND TO BE INADEQUATE BECAUSE:
•Computers started becoming popular and its application domain extended considerably, from science and engineering to business, industry, service, military, and government.
•Developers became different from users.
•Developers spent considerable time and effort to understand user requirements
•Applications often became so complex and large that the software had to be developed by a group of persons, rather than a single person.
•Large software products and their development by a group of persons invariably led to frequent malfunctioning of the software products during testing (by the developers) and use (at the user sites).
•The changing requirements of a customer often called for modification and enhancement of an existing piece of software.
Waterfall model phases
There are separate identified phases in the waterfall model: Requirements analysis and definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. In principle, a phase has to be complete before moving onto the next phase.
8
Waterfall model problems
Inflexible partitioning of the project into distinct stages makes it difficult to respond to changing customer requirements. Therefore, this model is only appropriate when the requirements
are well-understood and changes will be fairly limited during the design process.
Few business systems have stable requirements.The waterfall model is mostly used for large systems
engineering projects where a system is developed at several sites. In those circumstances, the plan-driven nature of the waterfall
model helps coordinate the work.
9
PROTOTYPING
Throw away prototyping Evolutionary prototyping
WHAT IS THE DIFFERENCES BETWEEN THROW AWAY AND EVOLUTIONARY?
Prototype development
May be based on rapid prototyping languages or toolsMay involve leaving out functionality
Prototype should focus on areas of the product that are not well-understood;
Error checking and recovery may not be included in the prototype; Focus on functional rather than non-functional requirements such
as reliability and security
Throw-away prototypes
Prototypes should be discarded after development as they are not a good basis for a production system: It may be impossible to tune the system to meet non-functional
requirements; Prototypes are normally undocumented; The prototype structure is usually degraded through rapid change; The prototype probably will not meet normal organisational quality
standards.
Spiral model sectors
Objective setting Specific objectives for the phase are identified.
Risk assessment and reduction Risks are assessed and activities put in place to reduce the key
risks.Development and validation
A development model for the system is chosen which can be any of the generic models.
Planning The project is reviewed and the next phase of the spiral is planned.
Spiral model usage
Spiral model has been very influential in helping people think about iteration in software processes and introducing the risk-driven approach to development.
In practice, however, the model is rarely used as published for practical software development.
QUESTIONS
1.Name 4 traditional software process models[spm] (C1)l State their differences and similaritiesl State characteristics of each modell State their weaknessesl How can they be enhanced?
Software Reuse
Benefits of Reuse
•Increased system reliability•Reduced overall project risk•Effective use of specialist•Embodiment of organizational standards in reusable components•Reduction in software development time
Questions on REUSE
l Is reuse suitable to be adopted for a development only for a large system? Explain with a flowchart.
l State the benefits of reuse
WIN-WIN SPIRAL MODEL
l The WinWin Spiral Model uses Theory W (win-win) to develop software and system requirements, and architectural solutions, as win conditions negotiated among a project's stakeholders (user, customer, developer, maintainer, interfacer).
l The WinWin negotiation tool is a Unix workstation-based groupware support system that allows stakeholders to enter win conditions, explore their interactions, and negotiate mutual agreements on the specifics of the new project being contracted.
The Rational Unified Process
A modern generic process derived from the work on the UML and associated process.
Brings together aspects of the 3 generic process models discussed previously.
Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A practive perspective that suggests good practice.
RUP phases
Inception Establish the business case for the system.
Elaboration Develop an understanding of the problem domain and the system
architecture.Construction
System design, programming and testing.Transition
Deploy the system in its operating environment.
RUP iteration
In-phase iteration Each phase is iterative with results developed incrementally.
Cross-phase iteration As shown by the loop in the RUP model, the whole set of phases
may be enacted incrementally.