Lecture 3 - Software Process

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

1

>

Software Process

Dr. Anıl Koyuncu


> How Do We Develop Software?
ØClassroom experiences?

-2 -
> Code and Fix
ØClassroom experiences?

-3 -
> Code and Fix
ØClassroom experiences?

-4 -
> How Do We Develop Software?
ØClassroom experiences?

-5 -
> The Essence of Practice
1. Understand the problem

2. Plan a solution

3. Carry out the plan

4. Examine the result for accuracy

6
> Understand the Problem
ØWho has a stake in the solution to the problem?

ØWhat are the unknowns?

ØCan the problem be compartmentalized?

ØCan the problem be represented graphically?

7
> Plan the Solution
ØHave you seen similar problems before?

ØHas a similar problem been solved?

ØCan subproblems be defined?

ØCan you represent a solution in a manner that leads to effective


implementation?

8
> Carry Out the Plan
ØDoes the solution conform to the plan?

ØIs each component part of the solution provably correct?

9
> Examine the Result
ØIs it possible to test each component part of the solution?

ØDoes the solution produce results that conform to the data, functions,
and features that are required?

10
> The software process
ØA structured set of activities required to develop a
software system.

• Specification
• Design and implementation
• Validation
• Evolution

11
> Software Development Life Cycle

- 12 -
> How Do We Build Software?

- 13 -
> How Do We Build Software?

- 14 -
> How Do We Build Software?

- 15 -
> Roles of people in software
• customer / client
• managers
• developers
• testers
• users
> Roles and Their Values

17
> How Do We Build Software?

Large number of actors / stakeholders standardization


Requirements middleware organization
• different
engineers concernsproviders
architects
• different jobs
• different skills site
marketing• large number of tools administrators
Lawyers Security
• different software artifacts
officers

tool end users


component
component application vendors
developers
testers testers
18
> Software Development Life Cycle

- 19 -
> Requirement Analysis
ØEstablishing:
• what services are required
• constraints on the system’s operation and development.

20
>

- 21 -
> The requirements engineering process

Requirements
Feasibility
elicitation and
study
analysis
Requirements
specification

Feasibility Requirements
report validation

System
models
User and system
requirements

Requirements
document

22
> The Systems Analyst as a Facilitator

- 23 -
830-1998 - IEEE Recommended Practice for Software
> Requirements Specifications

https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7
20574
- 24 -
>

25
> Software design and implementation
ØConverting system specification into an executable system.

26
A general model of the design process
>

Design inputs

Platform Requirements Data


information specification description

Design activities

Architectural Interface Component


design design design

Database design

Design outputs

System Database Interface Component


architecture specification specification specification

27
> Design activities
ØArchitectural design

ØInterface design

ØComponent design

ØDatabase design

28
> Architectural Design

- 29 -
> Interface Design

- 30 -
> Component Design

- 31 -
> Database Design

- 32 -
> Software validation
ØVerification and validation (V & V)

Øconforms to its specification and meets the requirements of the


system customer.

33
Stages of testing
>

Component Acceptance
System testing
testing testing

34
> Stages of Testing

- 35 -
> Testing stages
ØDevelopment or component testing
ØSystem testing
ØAcceptance testing

36
> Software evolution
ØSoftware must evolve and change

37
> System evolution

Define system Assess existing Propose system Modify


requirements systems changes systems

Existing New
systems system

38
> Coping with change
ØBusiness changes
ØNew technologies
ØChanging platforms

39
> Change Request

- 40 -
> Reducing the costs of rework
ØChange avoidance
ØChange tolerance

41
>
ØLet’s recall

42
> Making software is hard – Pitfalls to avoid
People Process Product Technology

• Undermined motivation • Overly optimistic • Requirements gold- • Silver-bullet syndrome


• Weak personnel schedules plating • Overestimated savings
• Uncontrolled problem • Insufficient risk • Feature creep from new tools or
employees management methods
• Developer gold-plating
• Heroics • Contractor failure
• Push-me, pull-me • Switching tools in the
• Adding people to a late • Insufficient planning middle of a project
negotiation
software project • Abandonment of planning
under pressure • Research-oriented • Lack of automated
• Noisy, crowded offices source-code control
• Wasted time during the development
• Friction between
developers and "fuzzy front end"
customers • Shortchanged upstream
• Unrealistic expectations activities
• Lack of effective project • Inadequate design
sponsorship • Shortchanged quality
• Lack of stakeholder buy- assurance
in • Insufficient management
• Lack of user input controls
• Politics placed over • Premature or overly
substance frequent convergence
• Wishful thinking • Omitting necessary tasks
from estimates
• Planning to catch up later
• Code-like-hell
programming
>

44

You might also like