Assignment of Generic Models (Software Engineering)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Assignment of:

Software Engineering

Topic Name: -

Generic Software process models

Submitted to: -

Prof Shahid Tauqeer

Submitted by: -

Muhammad Adeel

Roll No: -

Bsf1903553 (Bs IT 3rd)

(University of Education Lahore Multan Campus)

Software Engineering: -
Software engineering is an engineering branch associated with
development of software product using well-defined scientific principles, methods and
procedures. The outcome of software engineering is an efficient and reliable
software product.

Generic Software process models: -


 The waterfall model
Separate and distinct phases of specification and development.
 Evolutionary development
Specification, development and validation are interleaved.

 Formal systems development


A mathematical system model is formally transformed to an
Implementation.
 Reuse-based development
The system is assembled from existing components.
(a)Waterfall model: -
The waterfall model is a breakdown of project activities into linear
sequential phases, where each phase depends on the deliverables of the previous one and
corresponds to a specialization of tasks.

Waterfall model phases: -

 Requirements analysis and definition.


 System and software design.
 Implementation and unit testing.
 Integration and system testing.
 Operation and maintenance.
 The drawback of the waterfall model is the difficulty of accommodating change after
the process is process is underway
1. Requirements analysis and definition: -
This makes sense; the waterfall
model may not be accurate, but it is a useful method. It is rarely possible
to define requirements in sufficient detail up front, leave. Design is driven by
requirements data from a requirements analysis phase

2. System and software design: -


System Design: The requirement specifications from the first phase are
studied in this phase and system design is prepared. System Design helps in
specifying hardware and system requirements and also helps in defining
overall system architecture
3. Implementation and unit testing: -
Each unit is developed and tested for its functionality, which is referred to
as Unit Testing. Integration and Testing -All the units developed in
the implementation phase are integrated into a system after testing of each unit.
Post integration the entire system is tested for any faults and failures.
4. Operation and maintenance: -
Activities in this phase include obtaining maintenance requests from the end
users, transforming these requests into changes, designing the changes and finally
implementing said changes.

Waterfall model problems: -


 Inflexible partitioning of the project into distinct stages
 This makes it difficult to respond to changing customer requirements
 Therefore, this model is only appropriate when the requirements are well-understood

(b)Evolutionary development: -
(b)Evolutionary development: -
Evolutionary model is a combination of Iterative and Incremental model of software
development life cycle. The Evolutionary development model divides
the development cycle into smaller, incremental waterfall models in which users are able to
get access to the product at the end of each cycle.

I. 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
The exploratory model is an experimental, research-based
systems development method used to develop and design a computer system or product.
The exploratory model is based on planning and reviewing potential scenarios and
approaches until the one that appears to be optimal is selected.
I. Throw-away prototyping: -

Objective is to understand the system requirements.


Should start with poorly understood requirements.
Throwaway or rapid prototyping refers to the creation of a model that will
eventually be discarded rather than becoming part of the final delivered software. When this
goal has been achieved, the prototype model is 'thrown away', and the system is formally
developed based on the identified requirements.

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
(c) Formal systems development: -
Formal methods are intended to systematize and introduce accuracy into all the phases
of software development. This helps us to avoid overlooking critical issues, provides a
standard means to record various rules and decisions, and forms a basis for consistency
among many related activities.
 Based on the transformation of a mathematical specification through different
representations to an executable program
 Transformations are ‘correctness-preserving’ so it is straightforward to show that the
program
 conforms to its specification Embodied in the ‘Cleanroom’ approach to software
development

Formal transformations: -
Formal systems development: -
Problems: -
 Need for specialized skills and training to apply the technique
 Difficult to formally specify some aspects of the system such as the user interface
Applicability: -
 Critical systems especially those where a safety or security case must be made before
the system is put into operation
(d)Reuse-oriented development: -
 Based on systematic reuse where systems are integrated from existing components or
COTS (Commercial-off-the-shelf) systems
 Process stages: -
o Component analysis
o Requirements modification
o System design with reuse
o Development and integration
 This approach is becoming more important but still limited experience with it.

You might also like