View
231
Download
2
Tags:
Embed Size (px)
Citation preview
1
CS487CS487Software EngineeringSoftware Engineering
Omar AldawudOmar [email protected]@iit.edu
http://www.cs.iit.edu/~oaldawud/CS487
2
CS487 ScheduleCS487 Schedule
3
CS487 071 - RiceCS487 071 - Rice
CS487-071
4
CS487 251 - InternetCS487 251 - Internet
5
CS487 390 - MainCS487 390 - Main
6
CS487 961 - IndiaCS487 961 - India
7
CS 487 Course LogisticsCS 487 Course Logistics
Course Logistics Course Logistics
http://cs.iit.edu/~oaldawud/CS487http://cs.iit.edu/~oaldawud/CS487
[email protected]@iit.edu
8
Today’s ClassToday’s Class
Software Engineering ActivitiesSoftware Engineering Activities
SoftwareSoftware the Product and its Qualitythe Product and its Quality The Process!The Process!
What Is SE?What Is SE?
9
The Wall Street JournalThe Wall Street Journal“Ideas and technological discoveries are the “Ideas and technological discoveries are the deriving engines of economic growth” deriving engines of economic growth”
Software impact Software impact Impact of software maintenanceImpact of software maintenance
New Technologies to make it easier, faster, New Technologies to make it easier, faster, and less expensive to build and less expensive to build high-qualityhigh-quality programsprograms
10
Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e
Chapter 1Chapter 1Software and Software Software and Software
EngineeringEngineering
11
So Far …So Far …
You have been given detailed specifications of a You have been given detailed specifications of a small programming problem, and you did design, small programming problem, and you did design, code, test, and deployed by your selfcode, test, and deployed by your self Students Grade AverageStudents Grade Average Simple database applicationSimple database application
In this course you will be given a large and more In this course you will be given a large and more complex programming assignmentcomplex programming assignment
To complete it you need to put on your Software To complete it you need to put on your Software Engineering hat and work with a teamEngineering hat and work with a team
12
What is What is Software?Software?
Software is a set of items or objects that form a “configuration” that includes • programs • documents • data ...
13
Software’s Dual RoleSoftware’s Dual Role
Software is a productSoftware is a product Produces, manages, acquires, modifies, displays, or Produces, manages, acquires, modifies, displays, or
transmits informationtransmits information
Software is a vehicle for delivering a Software is a vehicle for delivering a productproduct Supports or directly provides system functionalitySupports or directly provides system functionality Controls other programs (e.g., an operating system)Controls other programs (e.g., an operating system) Effects communications (e.g., networking software)Effects communications (e.g., networking software) Helps build other software (e.g., software tools)Helps build other software (e.g., software tools)
14
What Is What Is Software?Software?
Is the Product that SW engineers Design Is the Product that SW engineers Design and Build.and Build.
it encompasses:it encompasses: Instructions “Computer Programs”Instructions “Computer Programs” Documents “Describe Programs”Documents “Describe Programs” Architecture including Data Structures “Enable Architecture including Data Structures “Enable
Programs”Programs”
Logical rather than physicalLogical rather than physical
15
Software vs. Software vs. HardwareHardware
software is engineered not manufactured
software doesn’t wear out Figure 1.1 vs Fig 1.2
software is complex Software is custom build
16
Wear vs. Wear vs. DeteriorationDeterioration
idealized curve
change
actual curve
Failurerate
Time
increased failurerate due to side effects
Compare to the bath-tub curve Fig 1.1
17
Software Software ApplicationsApplications
System software (compilers, System software (compilers, file management, etc)file management, etc)
Application softwareApplication software Engineering/scientific Engineering/scientific
software software Embedded software Embedded software Product-line softwareProduct-line software Web-AppsWeb-Apps AIAI
18
Software ApplicationsSoftware Applications
Ubiquitous computing —wireless networks Netsourcing —the Web as a computing
engine Open source —”free” source code open to
the computing community (a blessing, but also a potential curse!)
Also … (see Chapter 32) Data mining Grid computing Cognitive machines Software for nanotechnologies
19
Legacy SoftwareLegacy Software
software must be adapted to meet the needs of new computing environments or technology.
software must be enhanced to implement new business requirements.
software must be extended to make it interoperable with other more modern systems or databases.
software must be re-architected to make it viable within a network environment.
Why must it change?
20
Software Engineering
IEEE definition. 1.Application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance of software; That is, the application of engineering to software.
2.The study of approaches as in (1).
21
SE ActivitiesSE Activities
Communication
Planning
Modeling
Construction
Deployment
analysis
designcode
test
project init iation
requireme
nt gathering estimating scheduling tracking
delivery support feedback
Each phase has three components:
1. Set of activities - This is what you do
2. Set of deliverables - This is what you produce.
3. Quality Control Measures - This is what you use to evaluate the deliverables.
22
What Are Good Programs?What Are Good Programs?
What makes a text editor a bad application?What makes a text editor a bad application?
What makes a C++ compiler a bad What makes a C++ compiler a bad compiler?compiler?
What makes a hospital patient database What makes a hospital patient database application bad?application bad?
23
Quality Software, What Makes Quality Software, What Makes It Good?It Good?
1. It works Program must do the task correctly and completely THUS … the first step in the development process is to
understand exactly and completely WHAT the program is required to do?
Document the outcome SW requirements Develop programs that meets customer requirements using SW
specifications Format of Input and output Processing details Performance Error handling procedures Standards And so on …
24
Quality Software, What Makes Quality Software, What Makes It Good?It Good?
2. Can be read and understood2. Can be read and understood Document the codeDocument the code
3. Can be modified3. Can be modified To accommodate for new requirementsTo accommodate for new requirements
4. Completed in time and within budget 4. Completed in time and within budget
25
Quality and the ProcessQuality and the Process
How can we make sure (measure) that our How can we make sure (measure) that our software is “good”?software is “good”?
Measure the quality of the software by measuring the Measure the quality of the software by measuring the processprocess
We must have a roadmap or process .. We must have a roadmap or process .. A software A software processprocess
26
What is SW Process?What is SW Process?
When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result.
The ROAD MAP that you follow is the SW process.
Process depends on the SW you are building Web design vs. telephone switch!!
27
Software Process
Process defines who is doing: – What?, – When and how? – To reach a goal
Process defines tasks and activities within a schedule
Results – Programs – Documents – And data
Software process is a roadmap for high quality software
28
Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e
Chapter 2Chapter 2Process: A Generic ViewProcess: A Generic View
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
For University Use OnlyMay be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.
29
A Layered A Layered TechnologyTechnology
Software Engineering
a “quality” focusa “quality” focus
process modelprocess model
Methods Methods “how to’s”“how to’s”
toolstools
Communication
Requirements
Design
Code
Testing
Deployment
support
30
Umbrella ActivitiesUmbrella Activities
A Process A Process FrameworkFramework
Process framework
Framework activitiesSW Eng Actions #1
work taskswork productsmilestones & deliverablesQA checkpoints
Design
31
Framework ActivitiesFramework Activities
Communication Planning Modeling
Analysis of requirements Design
Construction Code generation Testing
Deployment
32
Umbrella ActivitiesUmbrella Activities Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management
33
Generic Framework activitiesGeneric Framework activities
Communication Get to know your Customer and their processes Identify stakeholders Requirement elicitation
34
Generic Framework activitiesGeneric Framework activities
Planning Plan the work Identify resources Identify tasks Set the schedule
35
Generic Framework activitiesGeneric Framework activities
Modeling Analysis of requirements Design Blue print for customer and developers communications
36
Generic Framework activitiesGeneric Framework activities
Construction Code generation Testing
37
Generic Framework activitiesGeneric Framework activities
Deployment Customer evaluation and feedback
38
CMM
There must be a commitment to QA.SEI developed a process model to measure Quality “IEEE Capability Maturity Model (CMM)”, CMM is a:
“A way to measure the current process maturity of an organization”
Maturity is a measure of the goodness of the process itself An organization with a more mature process is more likely
to develop high quality SW, in a timely, predictable and cost effective way.
An organization's process will improve slowly and become more mature
39
The CMMIThe CMMI The CMMI defines each process area in
terms of “specific goals” and the “specific practices” required to achieve these goals.
Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective.
Specific practices refine a goal into a set of process-related activities.
See Project Planning Example page 29
40
The CMMIThe CMMI Process “standards” do exist CMMI is an important one CMMI levels provide an indication of an organizations
process capability Level 0 incomplete Level 1 performed Level 2 managed Level 3 defined Level 4 quantitatively managed Level 5 optimized
See Fig 2.4 Page 31
41
Process PatternsProcess Patterns Process patterns define a set of activities, Process patterns define a set of activities,
actions, work tasks, work products and/or actions, work tasks, work products and/or related behaviorsrelated behaviors
A template is used to define a patternA template is used to define a pattern Typical examples:Typical examples:
Customer communication (a process activity)Customer communication (a process activity) Analysis (an action)Analysis (an action) Requirements gathering (a process task)Requirements gathering (a process task) Reviewing a work product (a process task)Reviewing a work product (a process task) Design model (a work product)Design model (a work product)
42
Process AssessmentProcess Assessment
The process should be assessed to ensure The process should be assessed to ensure that it meets a set of basic process criteria that it meets a set of basic process criteria that have been shown to be essential for a that have been shown to be essential for a successful software engineeringsuccessful software engineering.
Many different assessment options are Many different assessment options are available: available: SCAMPISCAMPI CBA IPICBA IPI SPICESPICE ISO 9001:2000ISO 9001:2000
43
Assessment and ImprovementAssessment and Improvement
Software Process
Software Process Assessment
is examined by identifies capabilitiesand risk of
identifiesmodifications to
Software Process Improvement
Capability Determination
leads to leads to
motivates
44
Generic View of SEGeneric View of SE
SW Engineering is the:SW Engineering is the: AnalysisAnalysis,, DesignDesign,, ConstructionConstruction,, VerificationVerification and. and. ManagementManagement of Software. of Software.
45
SW Process Models
Guides the SW team thought a set of framework activities (process flow) Linear Incremental evolutionary
It is a set of activities required to Define, design, implement, test and maintain a
software product. A SW process model is chosen based on the
nature of the project. Each process model prescribes a workflow for SE
activities
46
SW Process Models
All models have phases and each phase has 3 components: Set of activities, this is what you do. Set of deliverables, this is what you produce. Quality control measures, this is what you use to
evaluate the deliverables.
The activities defines the process Framework, the generic set encompasses: Communication, planning, modeling, construction, and
deployment