Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CONTENTS
Introduction to software engineering
Software process Software process models An agile view of process
market
Legacy Software
Poor quality
Legacy systems sometimes have inextensible designs, convoluted code, poor or nonexistent documentation, test cases and results that were never achieved, a poorly managed change history, and etc. However,as time passes legacy systems often evolve for one or more of the following reasons: The software must be adapted to meet the needs of new computing environments or technology. The software must be enhanced to implement new business requirements. The software must be extended to make it interoperable with more modern systems or databases. The software must be re architecture to make it available within a network environment.
Process framework
Applicable to all software projects
Task sets Umbrella activities Process Frameworks
PROCESS MODELS
A software process model is an abstract representation of a process. It presents description of a process from some particular perspective.
The waterfall model Sometimes called the classic life cycle suggests a systematic, sequential approachs to software development that begins at the system level and progresses through analysis, design, coding, testing, and support. Activities System/information engineering and modelling Software requirements analysis Design Code generation Testing Support Problems 1. Real projects rarely follow the sequential flow that the model proposes. Although the linear model can accommodate iteration, it does so indirectly. As a result, changes can cause confusion as the project team proceeds. 2. It is often difficult for the customer to state all requirements explicitly. The linear sequential model requires this and has difficulty accommodating the natural uncertainty that exists at the beginning of many projects. 3. The customer must have patience. A working version of the program(s) will not be available until late in the project time-span. A major blunder, if undetected until the working program is reviewed, can be disastrous.
Incremental model
-combines elements of the linear sequential model -Each linear sequence produces a deliverable increment of the software
organization. Goal is to ensure the production of high-q uality software Enhances team productivity The Unified Software Process has four phases: Inception - Define the scope of project Elaboration - Plan project, specify features, baseline architecture Construction - Build the product Transition - Transition the product into end user community
set of development guidelines. The philosophy encourages customer satisfaction and early incremental development of software. What is Agility? An agile team is a nimble team able to appropriately respond to changes. Changes in the software being built, changes to the team members, changes to because of new technology, changes of all kinds that may have an impact on the product they built or the projects that creates the project.
An AGILE SOFTWARE PROCESS is characterized in a manner that addresses three(3) key assumptions about the majority of software projects. 1.It is difficult to predict in advance which software requirements will persist and which will change. It is equally difficult to predict how customer priorities will change as a project proceeds. 2.For many types of software, design and construction are interleaved. i.e. Both activities should be performed in tandem so that design models are proven as they are created. It is difficult to predict how much design is necessary before construction is used to prove the design. 3.Analysis, design, construction, and testing are not as predictable (from planning) as we might like.
4.Scrum
Ensures that best product is produced SCRUM emphasizes the use of a set of Software
process patterns that have proven effective for projects with the tight timelines, changing requirements, and business criticality. Activities -Backlog -Sprints -Scrum meetings -Demos
CONCLUSION
The intent of software engineering is to provide a
framework for building software with higher quality. A number of different process models for software engineering have been proposed, each exhibiting strengths and weaknesses, but all having a series of generic phases in common. Each of these conventional models suggests a somewhat different process flow,but all perform the same set of generic framework activities. The principles and values of agile software development were formed as a way to help teams break the cycle of process inflation, and to focus on simple techniques for reaching their goals.
BIBLIOGRAPHY
Pressman, Roger S. Software Engineering: A Practitioners Approach, 6th Edition, McGraw-Hill, 2005. (ISBN: 0-07-285318-2) SEPA Web http://www.mhhe.com/pressman [AMB98] Ambler,S,Process patterns:Build in large scale systems using object technologies,Cambridge University Press,1998 [BRO75] Brooks, F., The Mythical Man-Month, Addison-Wesley, 1975. [DEJ98] De Jager, P. et al., Countdown Y2K: Business Survival Planning for the Year 2000, Wiley, 1998.