The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.

Slides:



Advertisements
Similar presentations
Software Processes.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Chap 2. Software Processes
Software Engineering Chapter 4 Software processes Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
What is software? Computer programs and associated documentation
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
1 Chapter 2 Software Processes An overview of conventional software process models, Rational Unified Process, and CASE tools.
EE6421/ED5031Software Engineering Slide 1 Section # 2 (Read Sommerville Ch (3 or 4) and Pressman Ch 2) Software Processes.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
Software Processes Overview
 © Ian Sommerville A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Software Engineering COMP 201 1COMP201 - Software Engineering Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP.
Chapter 2 – Software Processes
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Sommerville, I., Software Engineering, Pearson, 9th Ed., 2010.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Software Process Models
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 3Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 3 Software Processes.
Software Process Model
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Lecture 2 Software Processes CSC301-Winter 2011 Hesam C. Esfahani
Software Processes Sumber dari : cc.ee.ntu.edu.tw/~farn/courses/SE/ch4.ppt.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CSc 461/561 Software Engineering Lecture 2 – Software Processes.
An Introduction to Software Engineering
4. Software Processes Software Engineering. Objectives To introduce software process models To describe three generic process models and when they may.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 13: Software Life Cycle Models Omar Meqdadi SE 273 Lecture 13 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CSC 480 Software Engineering Lecture 2 August 26, 2002.
 Dr. Syed Noman Hasany.  Review of known methodologies  Analysis of software requirements  Real-time software  Software cost, quality, testing and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Engineering Saeed Akhtar The University of Lahore Lecture 3 Originally shared for: mashhoood.webs.com.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 SYS366 Week 2 - Lecture Visual Modeling and Process.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini II. Software Life Cycle.
Software Processes (a)
Chapter 2 SW Process Models
Software Processes.
Chapter 2 Software Processes
An Overview of Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Presentation transcript:

The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve the development of software from scratch, or extending and modifying existing systems. There are fundamental activities which are common to all software processes. These are:

The software process Software Specification : The functionality of the software and constraints on its operation must be defined. 2. Software design and implementation : The software to meet the specification must be produced. 3. Software validation : The software must be validated to ensure that it does what the customer wants. 4. Software evolution : The software must evolve to meet changing customer needs. Implementation تطبيق

Generic software process models A software process model is an abstract representation of a software process. Each process model represents a process from a particular perspective, provides partial information about used to develop different parts of the system. The process models are: Representation تمثيل

The process models 1- The waterfall model : Separate and distinct phases of specification and development. 2- Evolutionary development : Specification, development and validation are interleaved. 3- Component-based software engineering : The system is assembled from existing components. - There are many variants of these models e.g. formal model. Evolutionary development النمو التطويري Variants متغيرات Assembled تجميع

Waterfall model

Waterfall model phases - First model of the software development process was derived from more general system engineering process - The principal stages of the model map onto fundamental development activities: 1- Requirements analysis and definition: The system’s services, constraints and goals are established by consultation with system users. 2- System and software design : It involves identifying and describing the fundamental software system abstractions and their relationships. Abstractions تجريدات

Waterfall model phases 3- Implementation and unit testing : The system design is realized as a set of programs or program units. Unit testing involves that each unit meets its specification. 4- Integration and system testing : The individual program units or programs are integrated and tested as a complete system to ensure that as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer. 5- Operation and maintenance : The system is installed and put into practical use maintenance involves correcting errors which were not discovered in earlier stages. The main drawback of the waterfall model is the difficulty of accommodating change after the process is underway. One phase has to be complete before moving onto the next phase.

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. Stable مستقر

Evolutionary development Evolutionary development is based on the idea of developing an initial implementation, exposing this to user comment and refining this through many versions until an adequate system has been developed. Development and validation activities are carried out concurrently with rapid feedback across these activities. There are two types of evolutionary development: Concurrently في وقت واحد Feedback ردود الفعل Exposing تعريض Refining تنقية Adequate كاف

Evolutionary development 1- Exploratory development : Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well- understood requirements and add new features as proposed by the customer. 2- Throw-away prototyping : Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed. Exploratory استكشافي Evolve تتطور Outline الخطوط العريضة Proposed اقترح clarify يوضح prototypingنماذج

Evolutionary development

Evolutionary development There are three problems: 1- The process is not visible : Managers need regular deliverables to measure progress. If systems are developed quickly, it is not cost-effective to produce documents which reflect every version of the system. 2- Systems often poorly structured : Continual change tends to corrupt the software structure. Incorporating software changes becomes increasingly difficult and costly. 3- Special tools and techniques may be required : These may be incompatible with others and few people may have the skills to use them. Applicability : ( For small or medium-size interactive systems; For parts of large systems (the user interface); For short-lifetime systems ). Deliverablesالتسليمات tends to يميل الى Incorporateمتحد

Component-based software engineering Based on systematic reuse where systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. Reuse-oriented approach relies on a large base of reusable software components which can be accessed. Reliesيعتمد Approachنهج

CBSE Process stages 1- Component analysis : Given the requirements specification, a search is made for components to implement that specification. Usually, there is not an exact match and the components may provide some of required functions. 2- Requirements modification : The requirements are analyzed using information about the components which have been discovered. They are then modified to reflect the available components. 3- System design with reuse : The framework of the system is designed or an existing framework is reused. Frameworkإطار

CBSE Process stages 4- Development and integration : Software which cannot be bought is developed; the components and COTS are integrated to create the system. This approach is becoming increasingly used as component standards have emerged. The advantages are: 1- reduce the amount of software to be developed 2- reduce the cost and risks 3- lead to faster delivery of the software Emergedبرز

Reuse-oriented development

Process iteration For most large system, there is a need to use different approaches for different parts of the system, so a hybrid model must be used. There is also a need to support process iteration where parts of the process are repeated as system requirements. Iteration can be applied to any of the generic process models. Two (related) approaches Incremental delivery; Spiral development. Hybridهجين Iterationتكرير Incrementalتزايدي

Incremental delivery In an incremental development process, customers identify, in outline, the services to be provided by the system. A number of delivery increments are then defined, with each increment providing a subset of the system functionality. The allocation of services to increments depends on the service priority. The highest priority services are delivered first to the customer. The requirements for the services to be delivered in the first increment are defined in detail. Subset فرعي Allocationتخصيص

Incremental delivery Further requirements analysis for later increments can take place but requirements changes for the current increment are not accepted. Customers can classify their requirements for later increment. A new increments are integrated with existing increments so that the system functionality improves with each delivered increment. Classify صنف

Incremental development

Incremental development advantages The advantages are: 1- customers do not have to wait until the entire system is delivered. 2- customers can use the early increments as a form of prototype. 3- there is a lower risk of overall project failure 4- as the highest priority services are delivered first and later increments are integrated with them, the most important system services receive the most testing. Prototypeنموذج

Spiral development Process is represented as a spiral rather than as a sequence of activities with backtracking. Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. Risks are explicitly assessed and resolved throughout the process. Backtracking تراجع Assessed تقييم Explicitly صريح

Spiral model of the software process

Spiral model sectors 1- Objective setting Each loop in the spiral is split into four sectors: 1- Objective setting Specific objectives for that phase of the project are defined. Constraints on the process and the product and identified. A detailed management plan is drawn up. Project risks are identified. Alternative strategies depending on these risks may be planned. 2- Risk assessment and reduction For each identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. (Risk is something can go wrong). Identified محدد Assessment تقدير

Spiral model sectors 3- Development model for the system is then chosen. 4- Planning The project is reviewed and a decision made whether to continue a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.