Sei sulla pagina 1di 26

OBJECTIVES

To introduce software engineering and to explain its importance


To introduce ethical and professional issues and to explain why they are of concern to software engineers To describe a number of different process models and when they may be used To describe outline process models for requirements engineering, software development, testing and evolution

CONTENTS
Introduction to software engineering
Software process Software process models An agile view of process

INTRODUCTION TO SOFTWARE ENGINEERING


Concerned with all aspects of software production
High quality software systems Developed for a particular customer or may be for a

market

The Evolving Role of Software


Software takes on a dual role: A product Delivers the computing potential embodied by computer hardware The vehicle for delivering a product Acts as the basis for the control of the computer (OS), the communication of information (networks), and the creation and control of other programs (software tools and environments) The most important product: Information

Attributes of good software


Maintainability Software must evolve to meet changing needs Dependability Software must be trustworthy Efficiency Software should not make wasteful use of system resources Usability Software must be usable by the users for which it was designed

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.

THE SOFTWARE PROCESS


Coherent sets of activities for specifying, designing, implementing and

testing software systems Layered Technology

Process framework
Applicable to all software projects
Task sets Umbrella activities Process Frameworks

-Communication -Planning -Modeling -construction -Deployment

PROCESS MODELS
A software process model is an abstract representation of a process. It presents description of a process from some particular perspective.

1 The waterfall model


Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance

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.

2.Incremental Process Model


The incremental model RAD Model

Incremental model
-combines elements of the linear sequential model -Each linear sequence produces a deliverable increment of the software

3.Evolutionary Process Models


Prototyping The Spiral Model The concurrent development model

Prototyping -Requirement gathering -Quick design

The spiral model


-Rapid development of incremental versions of software -Task regions Customer communications Planning Risk analysis Engineering Construction and release Customer evalution

4 The Formal method model


Leads to formal mathematical specification of computer software. Cleanroom software engineering They provide a mechanism for eliminating many of the problems They serve as a basis for program verification

Drawback -time cinsuming -training is required

THE UNIFIED PROCESS


Assigns tasks and responsibilities within a development

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

AN AGILE VIEW OF PROCESS


Agile software Engineering combines a philosophy and a

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.

What Is An Agile Process?

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.

AGILE PROCESS MODELS 1 .Extreme Programming


-uses an object oriented approach as its preferred development paradigm. - encompasses a set of rules and practices that occur within the context of 4 framework activities: Planning, Design, Coding, and Testing

2.Adaptive Software Development

-Used as a technique for building complex software and systems


-3 phases Speculation Collabration Learning

3.Dynamic System Development Method


- Provides a framework for building and maintaining systems which meet tight time constraints through the use of incremental prototyping in a controlled project environment. - DSDM principle is attained from the pareto principle - 5 life cycle activities Feasibility study Business study Functional model iteration Design and build iteration Implementation

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.

Potrebbero piacerti anche