software process
DESCRIPTION
Software process. Topics covered. Review the previous lecture Software Process RUP- Rational Unified Process. Review. Abstract representation of a process Framework of a process and hide the details of a specific activity Software process models Waterfall model - PowerPoint PPT PresentationTRANSCRIPT
Review Abstract representation of a process
Framework of a process and hide the details of a specific activity
Software process models Waterfall model Evolutionary development
Exploratory developmentThro-away prototyping
Component-based engineeringBased on COTS
Process iterationIncremental delivery Spiral development
Process activitiesThere are four basic process activities:
Software specificationSoftware design and implementationSoftware validationSoftware evolution
Software specification or requirement Engineering
The process of establishing what services are required and the constraints on the system’s operation and development.
This process leads to the production of a requirements document( specification of the system).
Requirements engineering processFeasibility study;Requirements elicitation and analysis;Requirements specification;Requirements validation.
The requirements engineering process
Feasibilitystudy
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
Feasibility studyis not used to solve the problem but is use to
determine weather the proposed system will be cost effect if it can be developed with the existing budgetary
The result from this study is to inform the decision of whether or not to go ahead within the constrainThe report should be cheep and quick
Requirements elicitation and analysis
Discover the requirements fromExisting system Discussion with userTask analysis
You may useSystem relative model Prototypes
Requirements specificationIn this process is about translating information
gathered during the system analysis into into two documents 1. user or customer document includes abstract
statements of the system requirements
2. Software developer documents includes more detailed description of the functionality to be provided.
Requirements validationIn this process, you are going to check if the
requirements areRealConsistentComplete
All these process is going to continue during definition and specification.
Software design and implementation
The process of converting the system specification into an executable system.
Software designDescription of the structure of the software to be
implemented, the data which is part of the system, interface between system component, and algorithm that realises the specification; For example: library system
the design will be through of a number of versions. For each time you are going to add details and constrains with backtracking to correct the error in the earlier design.
The design process may involve developing several models of the system at different levels of abstraction.
Software design and implementation
ImplementationTranslate this structure into an executable
program;
The activities of design and implementation are closely related and may be interleaved.
Design process activities1. Input to design process
The software interface with other software system
OS, DB, other application program For example: weather system ( real time system)- input
comes from outside DB and application program to feed weather system to retrieve suitable and correct output display
Requirement specification is a description of the functionality the software that must provide
Design process activities2. Design activities
1. Architectural design Identify the overall structure includes
1. Sub-system if you used incremental development
2. Their relationship
3. How they are distributed
2. Interface design Interfaces between components if you use sub-system. The interface
specification should must unambiguous to implement them correctly.
3. Component design Take each component and design how it will operate; simple statement of
expected functionality to be implemented
4. Data structure design design database structure and how these are to be presented
It can be existing database or create a new database
Design process activitiesOutput from design process
Set of design outputsIn OO approach, the output mostly be diagrams and
in may cases automatically generate codeIn agile method, the output may be represented in
the code of program.
Possible modelsObject model;Sequence model;State transition model;Structural model;Data-flow model.
Programming and debugging
Programming is translating a design into a program There in no general programing process that is usually
followed You may use software development tools (CASE TOOLS) to
generate a skeleton program from a design. You may start from well understood components then
move less-understood components or versa vice. Code the interfaces between these components
debugging is removing errors from that program.
Programmers carry out some program testing to discover faults in the program and remove these faults in the debugging process.
Programming and debugging
Defect testing and debugging are different processes.
Testing establishes the existence of defects.
Debugging is concerned with locating and correcting these defects.
Testing may involve tracing the program code manually required new test cases to localize the problem; Or
You may use debugging tools to trace the code and find where are the errors.
Software validationVerification and validation (V & V) is intended to
show that a system conforms to its specification and meets the requirements of the system customer. It is check list processing at each stage of the
software process
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.
Testing stagesComponent or unit testing
Individual components are tested independently; Components may be functions or objects or
coherent groupings of these entities.
System testingTesting of the system as a whole. Testing of
emergent properties is particularly important.
Acceptance testingTesting with customer data to check that the
system meets the customer’s needs.
If an incremental approach to development is used, each increment should be tested as it is developed,
Alpha vs. beta testAcceptance testing is sometimes called alpha
testing. Custom systems are developed for a single client.
When a system is to be marketed as a software product, a testing process called beta testing Beta testing involves delivering a system to a number
of potential customers who agree to use that system
Software evolutionSoftware 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(limit) between development and evolution (maintenance), this is increasingly irrelevant as fewer and fewer systems are completely new.
System evolution
Assess existingsystems
Define systemrequirements
Propose systemchanges
Modifysystems
Newsystem
Existingsystems
The Rational Unified Process
A modern process model derived from the work on the UML -an object oriented modeling language - and associated process.Takes the advantages of three generic processesGood practice in specification and requirementsSupport prototyping and incremental delivery
Normally described from 3 perspectivesA dynamic perspective that shows phases over
time;A static perspective that shows process activities;A practice perspective that suggests good practice
of software development.
RUP phasesIdentify four discrete phases in software processes (
related to business point of view )
Phases are Inception
Establish the business case for the system.You should identify all external entities (people and
systems) that will interact with the system and define these interactions.
ElaborationDevelop an understanding of the problem domain and
the system.establish an architectural framework for the system,
develop the project plan and identify key project risks
Design use case, an architectural description and development design.
RUP phasesConstruction
System design, programming and testing. Developed in parallel an integrated system sequence, state machine, and class diagram
are design software system and their documentation to be
ready to deliver to the user.
Transition Deploy the system in its operating environment.
move the system from software development community to user community
you should have a documented software system that is working correctly in its operational environment.
2- Static view RUP focuses on the activities that take place during the
development process
It is called workflows in the RUP description.
There are six core process workflows identified in the process and three core supporting workflows.
Static workflowsWorkflow Description
Business modelling The business processes are modelled using business use cases.
Requirements Actors who interact with the system are identified and use cases aredeveloped to model the system requirements.
Analysis and design A design model is created and documented using architecturalmodels, component models, object models and sequence models.
Implementation The components in the system are implemented and structured intoimplementation sub-systems. Automatic code generation from designmodels helps accelerate this process.
Test Testing is an iterative process that is carried out in conjunction withimplementation. System testing follows the completion of theimplementation.
Deployment A product release is created, distributed to users and installed in theirworkplace.
Configuration andchange management
This supporting workflow managed changes to the system (seeChapter 29).
Project management This supporting workflow manages the system development (seeChapter 5).
Environment This workflow is concerned with making appropriate software toolsavailable to the software development team.
3- RUP good practiceDevelop software iteratively based on customer
priority
Manage requirements by keep tracking of user changes to their requirements.
Use component-based architectures; system architecture based on component
Visually model software; use graphical UML models to present static and dynamic views of the software.
RUP good practiceVerify software quality; Ensure that the software
meets the organizational quality standards.
Control changes to software; Manage changes to the software using a change management system and configuration management procedures and tools
Key pointsSoftware 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.
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.