The document discusses software process models and activities. It introduces generic process models like waterfall, evolutionary development, and component-based development. It also covers the Rational Unified Process model and its phases. Finally, it discusses various software engineering activities like specification, design, implementation, testing, and evolution as well as the role of computer-aided software engineering tools in supporting software processes.
The document discusses software processes and models. It describes objectives of introducing process models and activities like requirements engineering, design, testing and evolution. Generic process models covered are waterfall, evolutionary development and component-based engineering. Iterative models like incremental delivery and spiral development are also introduced. The Rational Unified Process model and role of computer-aided software engineering in supporting process activities are also summarized.
The document discusses different software development process models including waterfall, evolutionary development, incremental development, and spiral models. The waterfall model involves sequential phases of requirements, design, implementation, testing and maintenance. However, it does not handle changes well. Evolutionary and incremental models incorporate feedback loops and iterative development. The spiral model is risk-driven and guides teams to adopt elements of other models based on a project's risk assessment.
The document discusses software process models. It describes the waterfall model, which involves requirements analysis, design, implementation, testing, and maintenance phases completed sequentially. However, the waterfall model is inflexible and doesn't adapt well to changing requirements. The document then introduces incremental development as an alternative, delivering the system in prioritized increments to allow for adapting to changes more easily.
Software Process in Software Engineering SE3koolkampus
The document introduces software process models and describes three generic models: waterfall, evolutionary development, and component-based development. It also covers the Rational Unified Process model and discusses how computer-aided software engineering (CASE) tools can support software development processes.
The document introduces software process models and describes three generic models: waterfall, evolutionary development, and component-based development. It also outlines the software development process including requirements engineering, design, implementation, testing, and evolution. The Rational Unified Process model is introduced as a modern iterative process model. Computer-aided software engineering tools are discussed as a way to support software process activities.
The document introduces software process models and describes three generic models: waterfall, evolutionary development, and component-based development. It also covers the Rational Unified Process model and discusses how computer-aided software engineering (CASE) tools can support software processes. Key activities like requirements, design, implementation, testing, and evolution are defined.
The document introduces software process models including the waterfall model, evolutionary development, and component-based software engineering. It describes the Rational Unified Process model and discusses key process activities like requirements engineering, design, implementation, testing, and evolution. Computer-aided software engineering tools are introduced as a way to support various activities in the software development process.
The document introduces software process models including the waterfall model, evolutionary development, and component-based software engineering. It describes the Rational Unified Process model and discusses key process activities like requirements engineering, design, implementation, testing, and evolution. Computer-aided software engineering tools are introduced as a way to support various activities in the software development process.
The document discusses software processes and models. It describes objectives of introducing process models and activities like requirements engineering, design, testing and evolution. Generic process models covered are waterfall, evolutionary development and component-based engineering. Iterative models like incremental delivery and spiral development are also introduced. The Rational Unified Process model and role of computer-aided software engineering in supporting process activities are also summarized.
The document discusses different software development process models including waterfall, evolutionary development, incremental development, and spiral models. The waterfall model involves sequential phases of requirements, design, implementation, testing and maintenance. However, it does not handle changes well. Evolutionary and incremental models incorporate feedback loops and iterative development. The spiral model is risk-driven and guides teams to adopt elements of other models based on a project's risk assessment.
The document discusses software process models. It describes the waterfall model, which involves requirements analysis, design, implementation, testing, and maintenance phases completed sequentially. However, the waterfall model is inflexible and doesn't adapt well to changing requirements. The document then introduces incremental development as an alternative, delivering the system in prioritized increments to allow for adapting to changes more easily.
Software Process in Software Engineering SE3koolkampus
The document introduces software process models and describes three generic models: waterfall, evolutionary development, and component-based development. It also covers the Rational Unified Process model and discusses how computer-aided software engineering (CASE) tools can support software development processes.
The document introduces software process models and describes three generic models: waterfall, evolutionary development, and component-based development. It also outlines the software development process including requirements engineering, design, implementation, testing, and evolution. The Rational Unified Process model is introduced as a modern iterative process model. Computer-aided software engineering tools are discussed as a way to support software process activities.
The document introduces software process models and describes three generic models: waterfall, evolutionary development, and component-based development. It also covers the Rational Unified Process model and discusses how computer-aided software engineering (CASE) tools can support software processes. Key activities like requirements, design, implementation, testing, and evolution are defined.
The document introduces software process models including the waterfall model, evolutionary development, and component-based software engineering. It describes the Rational Unified Process model and discusses key process activities like requirements engineering, design, implementation, testing, and evolution. Computer-aided software engineering tools are introduced as a way to support various activities in the software development process.
The document introduces software process models including the waterfall model, evolutionary development, and component-based software engineering. It describes the Rational Unified Process model and discusses key process activities like requirements engineering, design, implementation, testing, and evolution. Computer-aided software engineering tools are introduced as a way to support various activities in the software development process.
Process in Software Engineering/4'ps in Software EngineerinMuhammadSufianJani
The document discusses software processes and provides an overview of various process models. It describes the Rational Unified Process (RUP) which includes phases of inception, elaboration, construction, and transition. Within each phase, activities like requirements gathering, analysis, design, implementation, and testing are performed iteratively. The RUP advocates for iterative development, managing requirements, using component-based architectures, visually modeling software, verifying quality, and controlling changes. It provides a flexible approach to software development through incremental iterations within and across phases.
The software process involves specification, design and implementation, validation, and evolution activities. It can be modeled using plan-driven approaches like the waterfall model or agile approaches. The waterfall model involves separate sequential phases while incremental development interleaves activities. Reuse-oriented processes focus on assembling systems from existing components. Real processes combine elements of different models. Specification defines system requirements through requirements engineering. Design translates requirements into a software structure and implementation creates an executable program. Validation verifies the system meets requirements through testing. Evolution maintains and changes the system in response to changing needs.
The document discusses various software development process models. It describes the waterfall model, which involves sequential phases from requirements to maintenance. The main drawback is difficulty accommodating changes after a phase is complete. The document also covers prototyping, rapid application development (RAD), incremental development, and spiral development - all of which allow for more iterative processes and incorporating feedback.
The document discusses software processes and introduces various process models including the waterfall model, evolutionary development, and component-based software engineering. It describes the Rational Unified Process model and explains process activities such as requirements engineering, design, implementation, testing, and evolution. The document also introduces computer-aided software engineering tools that can support different activities in the software development process.
The document discusses software processes and process models. It covers key topics like the waterfall model, incremental development, and reuse-oriented processes. The main activities involved in any software process are specification, design and implementation, validation, and evolution. Specification defines what the system should do, design implements the system structure, validation checks it meets requirements, and evolution handles changing needs. Process models organize these activities differently, like sequentially in waterfall or interleaved in incremental development.
The document discusses various aspects of the software process including software process models, generic process models like waterfall model and evolutionary development, process iteration, and system requirements specification. It provides details on each topic with definitions, characteristics, advantages and diagrams. The key steps in software process are specified as software specifications, design and implementation, validation, and evolution. Generic process models and specific models like waterfall, evolutionary development, and incremental delivery are explained.
Ian Sommerville, Software Engineering, 9th Edition Ch2Mohammed Romi
This document summarizes key aspects of software processes and models. It discusses the basic activities involved in software development like specification, design, implementation, validation and evolution. It describes process models like waterfall, incremental development and reuse-oriented processes. The waterfall model involves sequential phases while incremental development interleaves activities. Validation includes testing stages from unit to system level. The document also covers designing for change and evolution.
This is about software engineering.Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. Software engineers design and develop computer games, business applications, operating systems, network control systems, and middleware—to name just a few of the many career paths available.
The document summarizes key aspects of software processes as discussed in Chapter 2, including common process models like waterfall, incremental development, and reuse-oriented processes. It also describes common process activities like specification, design/implementation, validation, and evolution. A detailed explanation is provided of the Rational Unified Process (RUP), which incorporates elements of other models and defines phases like inception, elaboration, construction, and transition that may be iterated.
The document summarizes key aspects of software processes as discussed in Chapter 2, including common process models like waterfall, incremental development, and reuse-oriented processes. It also describes common process activities like specification, design/implementation, validation, and evolution. A detailed explanation is provided of the Rational Unified Process (RUP), which incorporates elements of other models and defines phases like inception, elaboration, construction, and transition that may be iterated.
The document provides an overview of software processes and models. It discusses the waterfall model, incremental development, and reuse-oriented processes. The waterfall model involves separate sequential phases while incremental development interleaves specification, development and validation. The Rational Unified Process (RUP) combines elements of different models and involves iterative phases of inception, elaboration, construction and transition. RUP aims to reduce risks and accommodate changes through incremental delivery and development.
This document discusses software processes and models. It covers the following key points:
1. Software processes involve activities like specification, design, implementation, validation and evolution to develop software systems. Common process models include waterfall, incremental development and reuse-oriented development.
2. Processes need to cope with inevitable changes. This can involve prototyping to avoid rework or using incremental development and delivery to more easily accommodate changes.
3. The Rational Unified Process is a modern process model with phases for inception, elaboration, construction and transition. It advocates iterative development and managing requirements and quality.
The document discusses various software development life cycle (SDLC) models including waterfall, iterative waterfall, V-shaped, prototyping, evolutionary, spiral, RAD, iterative enhancement, and agile models. It provides details on the phases and activities involved in classical waterfall model such as feasibility study, requirements analysis, design, coding, testing, integration, and maintenance. The advantages of waterfall model include being linear, systematic and having proper documentation, while the disadvantages are the inability to accommodate changes and detect errors late in the process. Iterative models allow for feedback loops to catch errors earlier.
The document describes different software development processes and models. It discusses the waterfall model, incremental development, reuse-oriented development, and the spiral model. The waterfall model involves sequential phases from requirements to maintenance. Incremental development interleaves specification, development and validation. Reuse focuses on assembling systems from existing components. The spiral model is iterative with risk assessment at each loop. The Rational Unified Process combines elements of these models into phases of inception, elaboration, construction and transition.
Software engineering is the application of engineering principles to the design, development, and maintenance of software. It includes activities like software specification, development, validation, and evolution. Common software processes include waterfall and incremental development models. Waterfall involves separate phases like requirements, design, implementation, testing, and maintenance while incremental allows interleaving and customer feedback.
Miss Aster Noor introduces the concepts of software processes and process models. The chapter covers software process models like waterfall, incremental development, and integration/configuration. It discusses the core process activities of requirements engineering, development, testing, and evolution. The chapter aims to explain why processes must adapt to changes and how process improvement affects quality.
The document discusses software processes and provides an overview of key concepts:
1) It describes different software process models including waterfall, incremental development, and reuse-oriented processes.
2) It covers important process activities like requirements specification, design/implementation, validation, and evolution.
3) It discusses approaches for coping with changing requirements like prototyping and incremental delivery.
The Rational Unified Process (RUP) is presented as a modern generic software process that incorporates elements of other process models.
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
The document discusses various software development processes. It begins by defining a software process as a framework that describes the activities performed at each stage of a project. It then categorizes common activities as software specification, development, validation, and evolution. The document goes on to describe plan-driven and agile processes, and notes that most practical processes include elements of both. It provides details on specific process models like waterfall, V-model, prototyping, incremental development, component-based development, and spiral model.
This presentation was provided by Steph Pollock of The American Psychological Association’s Journals Program, and Damita Snow, of The American Society of Civil Engineers (ASCE), for the initial session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session One: 'Setting Expectations: a DEIA Primer,' was held June 6, 2024.
Process in Software Engineering/4'ps in Software EngineerinMuhammadSufianJani
The document discusses software processes and provides an overview of various process models. It describes the Rational Unified Process (RUP) which includes phases of inception, elaboration, construction, and transition. Within each phase, activities like requirements gathering, analysis, design, implementation, and testing are performed iteratively. The RUP advocates for iterative development, managing requirements, using component-based architectures, visually modeling software, verifying quality, and controlling changes. It provides a flexible approach to software development through incremental iterations within and across phases.
The software process involves specification, design and implementation, validation, and evolution activities. It can be modeled using plan-driven approaches like the waterfall model or agile approaches. The waterfall model involves separate sequential phases while incremental development interleaves activities. Reuse-oriented processes focus on assembling systems from existing components. Real processes combine elements of different models. Specification defines system requirements through requirements engineering. Design translates requirements into a software structure and implementation creates an executable program. Validation verifies the system meets requirements through testing. Evolution maintains and changes the system in response to changing needs.
The document discusses various software development process models. It describes the waterfall model, which involves sequential phases from requirements to maintenance. The main drawback is difficulty accommodating changes after a phase is complete. The document also covers prototyping, rapid application development (RAD), incremental development, and spiral development - all of which allow for more iterative processes and incorporating feedback.
The document discusses software processes and introduces various process models including the waterfall model, evolutionary development, and component-based software engineering. It describes the Rational Unified Process model and explains process activities such as requirements engineering, design, implementation, testing, and evolution. The document also introduces computer-aided software engineering tools that can support different activities in the software development process.
The document discusses software processes and process models. It covers key topics like the waterfall model, incremental development, and reuse-oriented processes. The main activities involved in any software process are specification, design and implementation, validation, and evolution. Specification defines what the system should do, design implements the system structure, validation checks it meets requirements, and evolution handles changing needs. Process models organize these activities differently, like sequentially in waterfall or interleaved in incremental development.
The document discusses various aspects of the software process including software process models, generic process models like waterfall model and evolutionary development, process iteration, and system requirements specification. It provides details on each topic with definitions, characteristics, advantages and diagrams. The key steps in software process are specified as software specifications, design and implementation, validation, and evolution. Generic process models and specific models like waterfall, evolutionary development, and incremental delivery are explained.
Ian Sommerville, Software Engineering, 9th Edition Ch2Mohammed Romi
This document summarizes key aspects of software processes and models. It discusses the basic activities involved in software development like specification, design, implementation, validation and evolution. It describes process models like waterfall, incremental development and reuse-oriented processes. The waterfall model involves sequential phases while incremental development interleaves activities. Validation includes testing stages from unit to system level. The document also covers designing for change and evolution.
This is about software engineering.Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. Software engineers design and develop computer games, business applications, operating systems, network control systems, and middleware—to name just a few of the many career paths available.
The document summarizes key aspects of software processes as discussed in Chapter 2, including common process models like waterfall, incremental development, and reuse-oriented processes. It also describes common process activities like specification, design/implementation, validation, and evolution. A detailed explanation is provided of the Rational Unified Process (RUP), which incorporates elements of other models and defines phases like inception, elaboration, construction, and transition that may be iterated.
The document summarizes key aspects of software processes as discussed in Chapter 2, including common process models like waterfall, incremental development, and reuse-oriented processes. It also describes common process activities like specification, design/implementation, validation, and evolution. A detailed explanation is provided of the Rational Unified Process (RUP), which incorporates elements of other models and defines phases like inception, elaboration, construction, and transition that may be iterated.
The document provides an overview of software processes and models. It discusses the waterfall model, incremental development, and reuse-oriented processes. The waterfall model involves separate sequential phases while incremental development interleaves specification, development and validation. The Rational Unified Process (RUP) combines elements of different models and involves iterative phases of inception, elaboration, construction and transition. RUP aims to reduce risks and accommodate changes through incremental delivery and development.
This document discusses software processes and models. It covers the following key points:
1. Software processes involve activities like specification, design, implementation, validation and evolution to develop software systems. Common process models include waterfall, incremental development and reuse-oriented development.
2. Processes need to cope with inevitable changes. This can involve prototyping to avoid rework or using incremental development and delivery to more easily accommodate changes.
3. The Rational Unified Process is a modern process model with phases for inception, elaboration, construction and transition. It advocates iterative development and managing requirements and quality.
The document discusses various software development life cycle (SDLC) models including waterfall, iterative waterfall, V-shaped, prototyping, evolutionary, spiral, RAD, iterative enhancement, and agile models. It provides details on the phases and activities involved in classical waterfall model such as feasibility study, requirements analysis, design, coding, testing, integration, and maintenance. The advantages of waterfall model include being linear, systematic and having proper documentation, while the disadvantages are the inability to accommodate changes and detect errors late in the process. Iterative models allow for feedback loops to catch errors earlier.
The document describes different software development processes and models. It discusses the waterfall model, incremental development, reuse-oriented development, and the spiral model. The waterfall model involves sequential phases from requirements to maintenance. Incremental development interleaves specification, development and validation. Reuse focuses on assembling systems from existing components. The spiral model is iterative with risk assessment at each loop. The Rational Unified Process combines elements of these models into phases of inception, elaboration, construction and transition.
Software engineering is the application of engineering principles to the design, development, and maintenance of software. It includes activities like software specification, development, validation, and evolution. Common software processes include waterfall and incremental development models. Waterfall involves separate phases like requirements, design, implementation, testing, and maintenance while incremental allows interleaving and customer feedback.
Miss Aster Noor introduces the concepts of software processes and process models. The chapter covers software process models like waterfall, incremental development, and integration/configuration. It discusses the core process activities of requirements engineering, development, testing, and evolution. The chapter aims to explain why processes must adapt to changes and how process improvement affects quality.
The document discusses software processes and provides an overview of key concepts:
1) It describes different software process models including waterfall, incremental development, and reuse-oriented processes.
2) It covers important process activities like requirements specification, design/implementation, validation, and evolution.
3) It discusses approaches for coping with changing requirements like prototyping and incremental delivery.
The Rational Unified Process (RUP) is presented as a modern generic software process that incorporates elements of other process models.
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
The document discusses various software development processes. It begins by defining a software process as a framework that describes the activities performed at each stage of a project. It then categorizes common activities as software specification, development, validation, and evolution. The document goes on to describe plan-driven and agile processes, and notes that most practical processes include elements of both. It provides details on specific process models like waterfall, V-model, prototyping, incremental development, component-based development, and spiral model.
This presentation was provided by Steph Pollock of The American Psychological Association’s Journals Program, and Damita Snow, of The American Society of Civil Engineers (ASCE), for the initial session of NISO's 2024 Training Series "DEIA in the Scholarly Landscape." Session One: 'Setting Expectations: a DEIA Primer,' was held June 6, 2024.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
This presentation includes basic of PCOS their pathology and treatment and also Ayurveda correlation of PCOS and Ayurvedic line of treatment mentioned in classics.
Biological screening of herbal drugs: Introduction and Need for
Phyto-Pharmacological Screening, New Strategies for evaluating
Natural Products, In vitro evaluation techniques for Antioxidants, Antimicrobial and Anticancer drugs. In vivo evaluation techniques
for Anti-inflammatory, Antiulcer, Anticancer, Wound healing, Antidiabetic, Hepatoprotective, Cardio protective, Diuretics and
Antifertility, Toxicity studies as per OECD guidelines
MATATAG CURRICULUM: ASSESSING THE READINESS OF ELEM. PUBLIC SCHOOL TEACHERS I...NelTorrente
In this research, it concludes that while the readiness of teachers in Caloocan City to implement the MATATAG Curriculum is generally positive, targeted efforts in professional development, resource distribution, support networks, and comprehensive preparation can address the existing gaps and ensure successful curriculum implementation.
Executive Directors Chat Leveraging AI for Diversity, Equity, and InclusionTechSoup
Let’s explore the intersection of technology and equity in the final session of our DEI series. Discover how AI tools, like ChatGPT, can be used to support and enhance your nonprofit's DEI initiatives. Participants will gain insights into practical AI applications and get tips for leveraging technology to advance their DEI goals.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
2. 2
Objectives
To introduce software process models
To describe three generic process models
and when they may be used
To describe outline process models for
requirements engineering, software
development, testing and evolution
To explain the Rational Unified Process
model
To introduce CASE technology to support
software process activities
3. 3
Topics covered
Software process models
Process iteration
Process activities
The Rational Unified Process
Computer-aided software engineering
4. 4
The software process
A structured set of activities required to develop a
software system
Specification;
Design;
Validation;
Evolution.
A software process model is an abstract
representation of a process. It presents a
description of a process from some particular
perspective.
5. 5
Generic software process models
The waterfall model
Separate and distinct phases of specification and
development.
Evolutionary development
Specification, development and validation are
interleaved.
Component-based software engineering
The system is assembled from existing components.
There are many variants of these models e.g. formal
development where a waterfall-like process is used
but the specification is a formal specification that is
refined through several stages to an implementable
design.
7. 7
Waterfall model phases
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. One phase has to be
complete before moving onto the next phase.
8. 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.
9. 9
Evolutionary development
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.
Throw-away prototyping
Objective is to understand the system
requirements. Should start with poorly understood
requirements to clarify what is really needed.
11. 11
Evolutionary development
Problems
Lack of process visibility;
Systems are often poorly structured;
Special skills (e.g. in languages for rapid
prototyping) may be required.
Applicability
For small or medium-size interactive systems;
For parts of large systems (e.g. the user interface);
For short-lifetime systems.
12. 12
Component-based software engineering
Based on systematic reuse where systems
are integrated from existing components or
COTS (Commercial-off-the-shelf) systems.
Process stages
Component analysis;
Requirements modification;
System design with reuse;
Development and integration.
This approach is becoming increasingly used
as component standards have emerged.
14. 14
Process iteration
System requirements ALWAYS evolve in the
course of a project so process iteration
where earlier stages are reworked is always
part of the process for large systems.
Iteration can be applied to any of the generic
process models.
Two (related) approaches
Incremental delivery;
Spiral development.
15. 15
Incremental delivery
Rather than deliver the system as a single
delivery, the development and delivery is broken
down into increments with each increment
delivering part of the required functionality.
User requirements are prioritised and the highest
priority requirements are included in early
increments.
Once the development of an increment is started,
the requirements are frozen though requirements
for later increments can continue to evolve.
17. 17
Incremental development advantages
Customer value can be delivered with each
increment so system functionality is available
earlier.
Early increments act as a prototype to help
elicit requirements for later increments.
Lower risk of overall project failure.
The highest priority system services tend to
receive the most testing.
18. 18
Extreme programming
An approach to development based on the
development and delivery of very small
increments of functionality.
Relies on constant code improvement, user
involvement in the development team and
pairwise programming.
Covered in Chapter 17
19. 19
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.
21. 21
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.
23. 23
Software specification
The process of establishing what services
are required and the constraints on the
system’s operation and development.
Requirements engineering process
Feasibility study;
Requirements elicitation and analysis;
Requirements specification;
Requirements validation.
25. 25
Software design and implementation
The process of converting the system
specification into an executable system.
Software design
Design a software structure that realises the
specification;
Implementation
Translate this structure into an executable
program;
The activities of design and implementation
are closely related and may be inter-leaved.
28. 28
Structured methods
Systematic approaches to developing a
software design.
The design is usually documented as a set of
graphical models.
Possible models
Object model;
Sequence model;
State transition model;
Structural model;
Data-flow model.
29. 29
Programming and debugging
Translating a design into a program and
removing errors from that program.
Programming is a personal activity - there is
no generic programming process.
Programmers carry out some program
testing to discover faults in the program and
remove these faults in the debugging
process.
31. 31
Software validation
Verification and validation (V & V) is intended
to show that a system conforms to its
specification and meets the requirements of
the system customer.
Involves checking and review processes and
system testing.
System testing involves executing the system
with test cases that are derived from the
specification of the real data to be processed
by the system.
33. 33
Testing stages
Component or unit testing
Individual components are tested
independently;
Components may be functions or objects or
coherent groupings of these entities.
System testing
Testing of the system as a whole. Testing of
emergent properties is particularly important.
Acceptance testing
Testing with customer data to check that the
system meets the customer’s needs.
35. 35
Software evolution
Software is inherently flexible and can change.
As requirements change through changing
business circumstances, the software that
supports the business must also evolve and
change.
Although there has been a demarcation
between development and evolution
(maintenance) this is increasingly irrelevant as
fewer and fewer systems are completely new.
37. 37
The Rational Unified Process
A modern process model derived from the
work on the UML and associated process.
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.
39. 39
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.
41. 41
RUP Phases
Inception Elaboration Construction Transition Production
UP Phases
Workflows
Requirements
Analysis
Design
Implementation
Test
Iterations #1 #2 #n-1 #n
Support
42. 42
RUP Work Products
Inception phase
Elaboration phase
Construction phase
Transition phase
Vision document
Init ial use-case model
Init ial project glossary
Init ial business case
Init ial risk assessment .
Project plan,
phases and it erat ions.
Business model,
if necessary.
One or more prot ot ypes
I nc e pt i o
n
Use-case model
Supplement ary requirement s
including non-funct ional
Analysis model
Soft ware archit ect ure
Descript ion.
Execut able archit ect ural
prot ot ype.
Preliminary design model
Revised risk list
Project plan including
it erat ion plan
adapt ed workflows
milest ones
t echnical work product s
Preliminary user manual
Design model
Soft ware component s
Int egrat ed soft ware
increment
Test plan and procedure
Test cases
Support document at ion
user manuals
inst allat ion manuals
descript ion of current
increment
Delivered soft ware increment
Bet a t est report s
General user feedback
43. 43
RUP good practice
Develop software iteratively
Manage requirements
Use component-based architectures
Visually model software
Verify software quality
Control changes to software
44. 44
Static workflows
Workflow Description
Business modelli ng The business processes are modelled usingbu siness use cases.
Requirements Actors who interact with the system are identified and use cases are
developed to model the system requirements.
Ana lysis and de sign A design model is created and do cumented usinga rchitectural
models, component models, object models and sequence mod els.
Implementation The components in the system are implemented and structured into
implementation sub-systems. Automatic code generation from design
models helps accelerate this process.
Test Testing is an iterative process that is carried out inconjunc tion with
implementation. System testing follows the completion of the
implementation.
Deployment A produc t release is created, distributed to users and installed in their
workplace.
Configurationand
chang e management
This supporting workflow managed change s to the system (see
Chapter 29).
Project management This supporting workflow manage s the system development (see
Chapter 5).
Envi ronment This workflow is concerned with making appropriate software tools
available to the software development team.
46. 46
longevity
t0 t1 t2 t3 t4 t5
Functionality
Time
inappropriateness
lateness
shortfal
l slop : adaptability
original reqt.
A
B
D
C
E
waterfall
model
O : (t0) original reqt.
A : ( at t1) an operational product, not satisfying the old to needs
because poor understanding of needs.
A - B : undergo a series of enhancements.
B - D : the cost of enhancements increase, to build a new system.
stop at t4.
* cycle repeat itself
Comparing Various Process Models
47. 47
before understanding
of the user`s need =>
increase in functionality
t0 t1 t2 t4
Functionality
Time
Throwaway Prototyping and Spiral Model
49. 49
t0 t1 t2 t4
Functionality
t3
Time
Automated Software Synthesis
50. 50
t0 t1 t2 t4
Functionality
Time
user
Reusable Software
approach
conventional
approach
Reusable Software versus Conventional
51. 51
Computer-Aided Software Engineering
Computer-Aided Software Engineering (CASE) is
software to support software development and
evolution processes.
Activity automation
Graphical editors for system model development;
Data dictionary to manage design entities;
Graphical UI builder for user interface construction;
Debuggers to support program fault finding;
Automated translators to generate new versions of a
program.
52. 52
CASE technology
CASE technology has led to significant
improvements in the software process.
However, these are not the order of
magnitude improvements that were once
predicted
Software engineering requires creative thought -
this is not readily automated;
Software engineering is a team activity and, for
large projects, much time is spent in team
interactions. CASE technology does not really
support these.
53. 53
CASE classification
Classification helps us understand the different
types of CASE tools and their support for process
activities.
Functional perspective
Tools are classified according to their specific function.
Process perspective
Tools are classified according to process activities that
are supported.
Integration perspective
Tools are classified according to their organisation into
integrated units.
54. 54
Functional tool classification
Tool type Examples
Planning tools PERT tools, estimation tools, spreadsheets
Editing tools Text editors, diagram editors, word processors
Change management tools Requirements traceability tools, change control systems
Configuration management tools Version management systems, systembuilding tools
Prototyping tools Very high-level languages, user interface generators
Method-support tools Design editors, data dictionaries, code generators
Language-processing tools Compilers, interpreters
Program analysis tools Cross reference generators, static analysers, dynamic analysers
Testing tools Test data generators, file comparators
Debugging tools Interactive debugging systems
Documentation tools Page layout programs,image editors
Re-engineering tools Cross-reference systems, program re-structuring systems
55. 55
Activity-based tool classification
Specification Design Implementation V
erification
and
V
alidation
Re-eng ineering tools
Testing tools
Debugg ing tools
Program analysis tools
Language-processing
tools
Method suppor t tools
Prototyping tools
Configuration
management tools
Change management tools
Documentation tools
Editing tools
Planning tools
56. 56
CASE integration
Tools
Support individual process tasks such as design
consistency checking, text editing, etc.
Workbenches
Support a process phase such as specification or design,
Normally include a number of integrated tools.
Environments
Support all or a substantial part of an entire software
process. Normally include several integrated workbenches.
57. 57
Tools, workbenches, environments
Single-method
workbenches
Gener al-purpose
workbenches
Multi-method
workbenches
Langua ge-specific
workbenches
Programming T
esting
Analysis and
design
Integrated
envir
onments
Process-centr ed
envir
onments
File
compar ators
Compilers
Editors
Envir
onments
Workbenches
T
ools
CASE
technology
58. 58
Key points
Software processes are the activities involved in
producing and evolving a software system.
Software process models are abstract
representations of these processes.
General activities are specification, design and
implementation, validation and evolution.
Generic process models describe the organisation
of software processes. Examples include the
waterfall model, evolutionary development and
component-based software engineering.
Iterative process models describe the software
process as a cycle of activities.
59. 59
Key points
Requirements engineering is the process of
developing a software specification.
Design and implementation processes transform the
specification to an executable program.
Validation involves checking that the system meets
to its specification and user needs.
Evolution is concerned with modifying the system
after it is in use.
The Rational Unified Process is a generic process
model that separates activities from phases.
CASE technology supports software process
activities.