210 likes | 238 Views
Software Process Lecture-3-. Prepared by: Ahmed Sabeeh Yousif Master in Computer Engineering &Microelectronics System Northern Technical University College of Technical Administrative/ Mousl Department of Electronic Management Techniques Fourth year. This week… We shall.
E N D
Software ProcessLecture-3- Prepared by: Ahmed SabeehYousif Master in Computer Engineering &Microelectronics System Northern Technical University College of Technical Administrative/Mousl Department of Electronic Management Techniques Fourth year
This week… We shall • Discuss Product and Process concepts • Look at various software Process models • SDLC - the reality.
Software Engineering Products and Processes The software customer wants quality software products at reasonable prices The software producer wants a well managed software production process that consistently produces quality software in a cost-effective manner • The Software Process is a description of the process which guides the software engineers as they work Software Engineering Ahmed sabeehyousif
The Software Product • Composed of programs, data and documents • Delivers hardware computing potential • Delivers information Software Product Characteristics • developed or engineered, not manufactured • doesn’t wear out • most is custom built Software Engineering Ahmed Sabeeh Yousif
The Software Process The set of activities which produce a software product The sequence of steps to develop and maintain software Sets out the technical and management framework for applying methods, tools and people to the software task Software Engineering Ahmed Sabeeh Yousif
A Layered Technology Software Engineering Software Engineering tools methods process model a “quality” focus Software Engineering Ahmed SabeehYousif
Software Engineering Layers • Quality Focus - bedrock of “SE “supports software engineering is a quality focus. For an engineering Perspective, any engineering fields should must rest on on the quality metric” • Process • defines a framework as a basis for management control of projects and context for technical methods • Methods • technical ‘how to’ for building software • Tools • provide automated or semi-automated support for the process and the methods. Software Engineering Ahmed SabeehYousif
A Generic View of SE • Engineering is analysis, design, construction, verification, and management of technical (or social) entities. • Entity computer software • A software engineering process must be defined: definition phase, development phase, and support phase. Software Engineering Ahmed SabeehYousif
1-Definition Phase Focuses on “what” • What information is to be processed? • What function and performance are desired? • What system behavior can be expected? • Interface, design constraints, validation criteria identify key requirements of the system and SW. Software Engineering Ahmed SabeehYousif
2-Development Phase Focuses on “how” • How data are to be constructed? • How function is to be implemented within a software architecture? • Procedural details, interfaces, design programming, testing. Three technical tasks: software design, code generation, software testing. Software Engineering Ahmed SabeehYousif
3-Support Phase • Focuses on “change” associated with error correction, adaptations, changes. • Four types of changes: • Correction Corrective maintenance • Adaptation Adaptive maintenance • Enhancement Perfective maintenance • Prevention Preventive maintenance, often called Software Engineering more easily corrected, adapted, and enhance. Software Engineering Ahmed SabeehYousif
The Software Process ... Has a common process framework containing: • framework activities - for all software projects • work tasks • project milestones • software work products and deliverables • quality assurance points • umbrella activities - occur throughout the process • software quality assurance • software configuration management • software metrics or measurement Software Engineering Ahmed SabeehYousif
Process Framework • A process framework establishes the foundation for a complete software engineering process by identifying a small number of framework activities that are applicable to all software projects, regardless of their size or complexity. • The process framework encompasses a set of “umbrella activities” that are applicable across the entire software process, see figure(1). • umbrella activities are applied throughout a software project and help a software team manage and control progress, quality, change, and risk. Software Engineering Ahmed SabeehYousif
A Common Process Framework Figure 1. A Common Process Framework Software Engineering Ahmed Sabeeh Yousif
Software process Figure 1.2. Umbrella activities
Umbrella Activities In the definition of software process ,activities, actions, and tasks resides within a framework or model that defines their relationship with the process and with one another. Software engineering process framework activities are complemented by a number of umbrella activities. The software process is represented schematically in Figure 1.2 ,Referring to the figure, each framework activity is populated by a set of software engineering actions. Each software engineering action is defined by a task set that identifies the work tasks that are to be completed, the work products that will be produced, the quality assurance points that will be required, and the milestones that will be used to indicate progress
Typical umbrella activities include: Typical umbrella activities include: Software project tracking and control- allows the software team to assess progressagainst the project plan, take necessary action to maintain the schedule. Risk management- assesses risksthat may affect the outcome of the project or the quality of the product. Software quality assurance- defines the activities required to ensure software quality.
Typical umbrella activities include: Technical reviews- uncover and remove errorsbefore they are propagated to the next activity. Measurement- defines and collects process, project, and product measures. Software configuration management- manages the effects of changethroughout the software process. Reusability management- defines criteria for work product reuseand establishes mechanisms to achieve reusable components. Work product production- the activities required to create work products such as models, documents, logs, forms, and lists.
Software Process Models ... Evolutionary development • Linear or waterfall model • Prototyping (throw away) • Rapid Application Development • Incremental Process • Spiral Model • Concurrent Development Model • Fourth Generation Techniques • Extreme Programming Software Engineering Ahmed Sabeeh Yousif
SDLC - the reality Overlapping phases • Large, complex systems are usually broken into subsystems and other smaller components • Each subsystem may have its own mini-lifecycle. • In reality there will be a continuous stream of change requests. Software Engineering Ahmed Sabeeh Yousif
Process as Problem Solving Figure 2.2 Life cycle of design a solution Software Engineering Ahmed Sabeeh Yousif