0% found this document useful (0 votes)
14 views12 pages

Lec3 Summary

The document outlines various software processes including specifications, design, implementation, validation, and evolution, highlighting both plan-driven and agile methodologies. It discusses models like Waterfall and Incremental, detailing their phases, benefits, and drawbacks, as well as the importance of software reuse and prototyping in development. Additionally, it covers process improvement activities and the SEI Capability Maturity Model for enhancing software engineering practices.

Uploaded by

aymn74552
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views12 pages

Lec3 Summary

The document outlines various software processes including specifications, design, implementation, validation, and evolution, highlighting both plan-driven and agile methodologies. It discusses models like Waterfall and Incremental, detailing their phases, benefits, and drawbacks, as well as the importance of software reuse and prototyping in development. Additionally, it covers process improvement activities and the SEI Capability Maturity Model for enhancing software engineering practices.

Uploaded by

aymn74552
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Software Processes:

Part (1)
- Specifications: Defining what the system should do
- Design & Implementation: Implementing the system for a certain organization
- Validation: Checking if the system works as intended
- Evolution: Modifying the system in response to the customers
Software Processes Description:
- Talking about the activities in these processes such as specifying a data model, designing a GUI, etc…
- It also includes -> Products, Roles, Pre- & Post-Conditions
Plan-Driven & Agile Processes:
- Plan-Driven: Everything is planned from the beginning. The team follows the plan step by step,
and it's hard to make changes later.
- Agile: Planning is done in small steps. It’s easy to change things based on the customer’s needs. The work is done part by part,
and the customer gives feedback along the way.
Waterfall Model:
- Plan-driven, Separate & Unique phases of specifications & development

Waterfall Model Phases:


- Requirements Definition
- System & Software Design
- Implementation
- System Testing
- Maintenance & Evolution
Waterfall Model Drawback:
- The difficulty of changing a process when it’s underway, a phase has to be complete before going into another one
- Mostly used for large systems engineering projects where a system is developed at several sties
Incremental Model:
- Can be Plan-driven or Agile
- Specification, Development and Validation are interleaved

Incremental Development Benefits:


- The cost of changing customer requirements is reduced, as there are less to be redone than waterfall model
- Easier to get customer feedback, as they can comment and see how much has been implemented
- More rapid delivery & Deployment than the waterfall model
Incremental Development Problems:
- The Process is not visible
-The system can become messy or harder to manage when new parts are added over time
Integration & Configuration:
- Based on software reuse where systems are integrated from existing components or software (COTS)
- Reused elements adapt to the user’s requirements and it’s a standard approach for business
Types of Reusable Software:
- Stand-alone applications that configured for a certain purpose
- Packages to be integrated with frameworks
- Web services
Reuse-Oriented Software Engineering:

Reuse-Oriented Software Engineering (Key Stages):


- Requirements Specification
- Software Evolution
- Requirements refine
- Application system config
- Component Adaptation and Integration
Reuse-Oriented Software Engineering (Pros & Cons):
- Reduced cots & risks
- Faster Delivery & Deployment
- Requirement compromising is inevitable
- Loss of control over evolution
Processes Activities: Part (2)
- The 4 basic processes activities are specification, development, validation & evolution organized differently in software dev
Requirements Engineering Process:

Software Specifications: process of enabling services that are required and the constrains on the system’s operation
Requirement Engineering Processes:
- Requirements Elicitation & analysis
- Requirement Specification
- Requirement Validation
Design Activities:
- Architectural Design -> Identify the overall structure of the system & it’s components
- Database Design -> designing the system data structure & their representation
- Interface Design -> define the interfaces of the system
- Component Selection -> Where you search for reusable components
System Implementation:
- System is implemented through developing programs and configuring it
- Design & Implementation are two different processes
- Programming is an individual activity
- Debugging is finding the program’s failures & fixing them
System Validation:
- Shows that the system meets the requirements of the customer, it involves reviewing the system and testing it, Mostly
through V & V activity

Testing Stages:
- Component Testing -> Individual components are tested independently
- System Testing -> Testing the system as whole
- Customer Testing -> Testing customer’s data to the check if the system matches their need
Software Evolution:
- Software is flexible and can change as the requirements change the software should evolve with it

• Change is in all large software projects, and it leads to reworks so the costs of change could be high
Reducing the Costs of Reworks:
- Software Products should anticipate possible changes before it happens, changing of tolerance
Software Prototyping:
- Prototype is an initial version of the system mostly used to visualize new additions to the system, and can be used in:
- Requirements Gathering, Design Processes, testing
Software Prototyping (Benefits):
- Improved System Usability
- Closer match to the user needs
- Improved Design quality
- Reduced costs
Throw-away Prototypes:
- Prototypes that are discarded after development as they are not needed anymore
Incremental Delivery:
- Instead of delivering the system in one shot, the delivery & deployment is broken into pieces first, to ensure the user
requirements is done first
Incremental Development:
- Develop the system in increments and evaluating each increment before going to another one

Incremental Delivery (Pros):


- Customer value is delivered with each increment so it’s available to use earlier
- Early Increments act as Prototypes
- Lower risk of project failure
- Highest priority service tends to receive the most testing
Incremental Delivery (Cons):
- Systems require a basic facilities used by different parts of the system
Process Improvement Activities:
- Process measurement
- Process analysis
- Process Change
SEI Capability Maturity Model:
- Initial
- Repeatable
- Defined
- Managed
- Optimizing

**Throw-away Prototypes:**
- Built quickly using special tools or languages
- May not include all features
- Focus on parts that are unclear or need testing
- May skip error handling and security
- Main goal is to test **functions**, not things like
**reliability** or **security**

You might also like