View
230
Download
0
Category
Preview:
Citation preview
8/6/2019 SoftEng Process Models
1/22
NEU CS424 SoftwareEngineering
Software Engineering
The application of systematic,
disciplined, quantifiable approach to the
development, operation, and
maintenance of software, that is the
application of engineering to software
- IEEE
8/6/2019 SoftEng Process Models
2/22
NEU CS424 SoftwareEngineering
MANAGEMENT: Managers
and leaders should promote an
ethical approach to the
management of software
development PROFESSION: Advance the
integrity and reputation of the
profession
COLLEAGUES: Be fair and
supportive of colleagues
SELF: Participate in lifelonglearning, promote ethical
approach to the profession
PUBLIC: Act consistently with
the public interest
CLIENT AND EMPLOYER: Act
in the best interest of client and
employer, consistent with thepublic interest
PRODUCT: Ensure product
meets highest professional
standards
JUDGMENT: Maintain integrity
and independence inprofessional judgment
ACM/IEEE Code of Ethics(available at http://www.acm.org/serving/se/code.htm)
8/6/2019 SoftEng Process Models
3/22
NEU CS424 SoftwareEngineering
Software != CodeSource code is asubsetsoftware project
Requirements and specification
Design documents
Test suites, test plans
InterfacesDocumentation
Software is notwhat we think it is
8/6/2019 SoftEng Process Models
4/22
NEU CS424 SoftwareEngineering
Large Software != Lots of Code
Large software brings up several issues of scale: Total comprehensibility must be forfeited
Solo programming becomes impossible
Communication becomes an essential challenge
Changing requirements are an everyday reality
Lifetime is measured in years or decades
People dont know what they want
Large software is notwhat we think it is
8/6/2019 SoftEng Process Models
5/22
NEU CS424 SoftwareEngineering
Software as a Product
Software is expensive!
The major cost is your salary!
Every software project has a trade-off between:
Functionality
Resources (cost)
Timeliness
8/6/2019 SoftEng Process Models
6/22
NEU CS424 SoftwareEngineering
Client (a.k.a. Customer)
# The client provides resources and expects some product
in return.
# Client satisfaction is the primary measurement of
success.
Question: Who is the client for Microsoft Excel?
8/6/2019 SoftEng Process Models
7/22
NEU CS424 SoftwareEngineering
Variety of Software Products
Examples
Real time: air traffic control
Embedded systems: digital camera, GPS
Data processing: telephone billing, pensionsInformation systems: web sites, digital libraries
Sensors: weather data
System software: operating systems, compilers
Communications: routers, mobile telephonesOffices: word processing, video conferences
Scientific: simulations, weather forecasting
Graphical: film making, design
etc., etc., etc., ....
8/6/2019 SoftEng Process Models
8/22
NEU CS424 SoftwareEngineering
General characteristics
Usability
Maintainability
DependabilityEfficiency
Good software products require good programming,
but ...
Programming quality is the means to the end, not the
end itself.
Characteristics of All Software
Products
8/6/2019 SoftEng Process Models
9/22
NEU CS424 SoftwareEngineering
Usefulness
Modularization
Reliability Robustness
Usability
Efficiency
Flexibility
Good internal documentation Good external documentation
Software Qualities
8/6/2019 SoftEng Process Models
10/22
NEU CS424 SoftwareEngineering
Correctness
- No errors
Usefulness- Does what we want to do
Minimal production effort
minimal cost
minimal time maximum profit
Minimal maintenance effort
Ideal Goals of Software
Engineering
8/6/2019 SoftEng Process Models
11/22
NEU CS424 SoftwareEngineering
Categories of Product
Categories of client and software product:
# Generic (e.g., Microsoft Excel)
# Bespoke (customized) (e.g., IRS internal
system)
Many systems are customized versions of genericpackages (e.g., Cornell's payroll system)
8/6/2019 SoftEng Process Models
12/22
NEU CS424 SoftwareEngineering
Variety of Software Products
Software products are very varied
--> Client requirements are very different
--> There is no standard process for software engineering
--> There is no best language, operating system, platform,
database system, development environment, etc.
A skilled software developer knows about a wide variety ofapproaches, methods, tools. The craft of software engineering
is to select appropriate methods for each project and apply them
effectively.
8/6/2019 SoftEng Process Models
13/22
NEU CS424 SoftwareEngineering
Professional Responsibility
Organizations put trust in software developers:
Competence: Software that does not work effectively can
destroy an organization.
Confidentiality: Software developers and systems
administrators may have access to highly confidential
information (e.g., trade secrets, personal data).
Legal environment: Software exists in a complex legalenvironment (e.g., intellectual property, obscenity).
Acceptable use and misuse: Computer abuse can paralyze an
organization (e.g., the Internet worm).
8/6/2019 SoftEng Process Models
14/22
NEU CS424 SoftwareEngineering
Requirements Analysis & Specification
Conceptual/System Design
Detailed/Program Design
Implementation/Coding
Unit & Integration Testing
System Testing
System Delivery
Maintenance
Software Development Stages
8/6/2019 SoftEng Process Models
15/22
NEU CS424 SoftwareEngineering
Waterfall Model
V Model
Prototyping Model
Operational Specification Model
Phased Development Model Spiral Model
Software Lifecycle Models
8/6/2019 SoftEng Process Models
16/22
NEU CS424 SoftwareEngineering
Waterfall ModelREQUIREMENT
NALYSIS
SYSTEM
DESI N
PROGRAM
DESIGN
CODING
UNIT & INTE-
GRATION TESTING
SYSTEM
TESTING
ACCEPTANCE
TESTINGOPERATION
& MAINTENANCE[Pfleeger 98]
8/6/2019 SoftEng Process Models
17/22
NEU CS424 SoftwareEngineering
V ModelREQUIREMENTS
ANALYSIS
SYSTEMDESIGN
PROGRAM
DESIGN
CODING
UNIT & INTE-
GRATION TESTING
SYSTEM
TESTING
ACCEPTANCE
TESTING
OPERATION
& MAINTENANCE
Veri y design
Validate requirements
[Pfleeger 98]
8/6/2019 SoftEng Process Models
18/22
NEU CS424 SoftwareEngineering
Prototyping Model
Listen toCustomer
Customer
Test-drives
Mock-up
Build/ReviseMock-Up
[Pressman 97]
8/6/2019 SoftEng Process Models
19/22
NEU CS424 SoftwareEngineering
Prototyping ModelLIST OF
REVISIONS
LIST OF
REVISIONS
LIST OF
REVISIONS
PROTOTYPE
REQUIREMENTS
PROTOTYPE
DESIGN
PROTOTYPE
SYSTEMTEST
DELIVERED
SYSTEMSYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
revise
prototype
user/
customer
review
[Pfleeger 98]
8/6/2019 SoftEng Process Models
20/22
NEU CS424 SoftwareEngineering
Operational Specification
Model
TEST
DELIVEREDSYSTEM
Execute and
Revise
OPERATIONAL
SPECI ICATION
(problem-oriented)
TRANSFORMED
SPECIFICATION
(implementation-
oriented)
SYSTEM
REQUIREMENTS
(sometimes informal
or incomplete)
[Pfleeger 98]
8/6/2019 SoftEng Process Models
21/22
NEU CS424 SoftwareEngineering
Phased Development ModelDevelopment systems
Production systems
DEVELOPERS
USERS
Build Release 1
Use Release 1
Build Release 2
Use Release 2
Build Release 3
Use Release 3
Time
[Pfleeger 98]
8/6/2019 SoftEng Process Models
22/22
NEU CS424 SoftwareEngineering
Boehms Spiral Model
PLAN DEVELOP AND TEST
DETERMINE GOALS,ALTERNATIVES,CONSTRAINTS
EVALUATE ALTERNATIVESAND RISKS
Requirements,
life-cycle plan
Budget1
Risk analysis1
Risk analysis 2
Risk analysis3
Risk analysis 4
Budget2
Budget3
Budget 4 Prototype1
Proto -
type 2
Proto-
type 3
Proto-
type 4
Concept of
operationDetailed
design
Code
Unit test
System
testAcceptance
test
Implementation
plan
[Pfleeger 98]
start
Recommended