








Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Week 1 Material Type: Notes; Professor: Cukic; Class: Advanced Software Engineering; Subject: Computer Science; University: West Virginia University; Term: Spring 2013;
Typology: Study notes
1 / 14
This page cannot be seen from the preview
Don't miss anything!









These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 1
copyrightcopyright ©© 1996, 2001, 20051996, 2001, 2005 R.S. Pressman & Associates, Inc.R.S. Pressman & Associates, Inc.
For review purposes ONLY by potential adopters ofFor review purposes ONLY by potential adopters of Software Engineering: A Practitioner's Approach.Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.Any other reproduction or use is expressly prohibited.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2
^ Delivers computing potentialDelivers computing potential Produces, manages, acquires, modifies, displays, or transmitsProduces, manages, acquires, modifies, displays, or transmits informationinformation
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)
idealized curve
change
actual curve
Failure rate
Time
increased failure rate due to side effects
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 4
software must besoftware must be adaptedadapted to meet the needs of newto meet the needs of new computing environments or technology.computing environments or technology. software must besoftware must be enhancedenhanced to implement newto implement new business requirements.business requirements. ^ software must besoftware must be extended to make it interoperableextended to make it interoperable with other more modern systems or databases.with other more modern systems or databases. software must besoftware must be rere--architectedarchitected to make it viableto make it viable within a network environmentwithin a network environment.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5
aa ““qualityquality”” focusfocus
process modelprocess model
methodsmethods
toolstools
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 10
Com m unicat ion
Qu ick p l an
Const r uct ion of pr ot ot ype
Mo d e l i n gQ u i ck d e si g n
De live r y & Fe e dback
Deployment
communication
Quick plan
Modeling Quick design
Construction of prototype
Deployment delivery & feedback
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11
““We are uncovering better ways of developingWe are uncovering better ways of developing software by doing it and helping others do it.software by doing it and helping others do it. Through this work we have come to value:Through this work we have come to value:
Kent Beck et alKent Beck et al
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 13
unit t est cont inuous int egrat ion
accept ance t est ing
pair programming
Release
user st ories values accept ance t est crit eria it erat ion plan
simple design CRC cards
spike solut ions prot ot ypes
ref act oring
sof t ware increment project velocit y comput ed
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14
SoftwareSoftware HardwareHardware PeoplePeople DatabaseDatabase DocumentationDocumentation ProceduresProcedures
A hierarchy of macroA hierarchy of macro--elementselements
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 19
Analysis Model
use-cases - textuse-case diagrams activity diagramsswim lane diagrams
data flow diagramscontrol-flow diagrams processing narratives
f l ow- o r i e nt e de l e m e nt s
c l a ss- ba se de l e m e nt s b e ha v i or a le l e m e nt s
sc e na r i o- ba se de l e m e nt s
class diagramsanalysis packages CRcollaboration diagramsC models
state diagramssequence diagrams D a t a / Cl a ss D e si g n
A r c h it e c t u r a l D e si g n
I n t e r f a c e D e si g n
Co m p o n e n t - L e v e l D e si g n
Design Model
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 20
^ The design process should not suffer fromThe design process should not suffer from ‘‘tunnel vision.tunnel vision.’’ The design should be traceable to the analysis model.The design should be traceable to the analysis model. The design should not reinvent the wheel.The design should not reinvent the wheel. The design shouldThe design should ““minimize the intellectual distanceminimize the intellectual distance”” [DAV95] between[DAV95] between the software and the problem as it exists in the real world.the software and the problem as it exists in the real world. The design should exhibit uniformity and integration.The design should exhibit uniformity and integration. The design should be structured to accommodate change.The design should be structured to accommodate change. The design should be structured to degrade gently, even when abeThe design should be structured to degrade gently, even when aberrantrrant data, events, or operating conditions are encountered.data, events, or operating conditions are encountered. Design is not coding, coding is not design.Design is not coding, coding is not design. The design should be assessed for quality as it is being createdThe design should be assessed for quality as it is being created, not after, not after the fact.the fact. The design should be reviewed to minimize conceptual (semantic)The design should be reviewed to minimize conceptual (semantic) errors.errors. From Davis [DAV95]
abstractionabstraction——data, procedure, controldata, procedure, control ^ architecturearchitecture——the overall structure of the softwarethe overall structure of the software patternspatterns——””conveys the essenceconveys the essence”” of a proven design solutionof a proven design solution modularitymodularity——compartmentalization of data and functioncompartmentalization of data and function hidinghiding——controlled interfacescontrolled interfaces Functional independenceFunctional independence——singlesingle--minded function and low couplingminded function and low coupling refinementrefinement——elaboration of detail for all abstractionselaboration of detail for all abstractions (^) RefactoringRefactoring——a reorganization technique that simplifies the designa reorganization technique that simplifies the design
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 22
The module (component) is our initial focusThe module (component) is our initial focus Integration of modules followsIntegration of modules follows
our focus whenour focus when ““testing in the smalltesting in the small”” changes from an individualchanges from an individual module (the conventional view) to an OO class thatmodule (the conventional view) to an OO class that encompasses attributes and operations and impliesencompasses attributes and operations and implies communication and collaborationcommunication and collaboration
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 23
(^) State testing objectives explicitly.State testing objectives explicitly.
Understand the users of the software and develop a profile for eUnderstand the users of the software and develop a profile for each userach user category.category. Develop a testing plan that emphasizesDevelop a testing plan that emphasizes ““rapid cycle testing.rapid cycle testing.”” BuildBuild ““robustrobust”” software that is designed to test itselfsoftware that is designed to test itself Use effective formal technical reviews as a filter prior to testUse effective formal technical reviews as a filter prior to testinging Conduct formal technical reviews to assess the test strategy andConduct formal technical reviews to assess the test strategy and test casestest cases themselves.themselves. Develop a continuous improvement approach for the testing procesDevelop a continuous improvement approach for the testing process.s.
OperabilityOperability——it operates cleanlyit operates cleanly ObservabilityObservability——the results of each test case are readilythe results of each test case are readily observedobserved ControllabilityControllability——the degree to which testing can be automatedthe degree to which testing can be automated and optimizedand optimized DecomposabilityDecomposability——testing can be targetedtesting can be targeted SimplicitySimplicity——reduce complex architecture and logic to simplifyreduce complex architecture and logic to simplify teststests StabilityStability——few changes are requested during testingfew changes are requested during testing UnderstandabilityUnderstandability——of the designof the design
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 28
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 29
The objectives of measurement should be established beforeThe objectives of measurement should be established before data collection begins;data collection begins; Each technical metric should be defined in an unambiguousEach technical metric should be defined in an unambiguous manner;manner; Metrics should be derived based on a theory that is valid for thMetrics should be derived based on a theory that is valid for thee domain of application (e.g., metrics for design should draw upondomain of application (e.g., metrics for design should draw upon basic design concepts and principles and attempt to provide anbasic design concepts and principles and attempt to provide an indication of the presence of an attribute that is deemedindication of the presence of an attribute that is deemed desirable);desirable); Metrics should be tailored to best accommodate specific productsMetrics should be tailored to best accommodate specific products and processes [BAS84]and processes [BAS84]
The Goal/Question/Metric ParadigmThe Goal/Question/Metric Paradigm (1) establish an explicit measurement(1) establish an explicit measurement goalgoal that is specific to the processthat is specific to the process activity or product characteristic that is to be assessedactivity or product characteristic that is to be assessed (2) define a set of(2) define a set of questionsquestions that must be answered in order to achieve thethat must be answered in order to achieve the goal, andgoal, and (^) (3) identify well(3) identify well--formulatedformulated (^) metricmetricss (^) that help to answer these questions.that help to answer these questions. Goal definition templateGoal definition template AnalyzeAnalyze {the name of activity or attribute to be measured}{the name of activity or attribute to be measured} ^ for the purpose offor the purpose of {the overall objective of the analysis}{the overall objective of the analysis} with respect towith respect to {the aspect of the activity or attribute that is considered}{the aspect of the activity or attribute that is considered} from the viewpoint offrom the viewpoint of {the people who have an interest in the measurement}{the people who have an interest in the measurement} in the context ofin the context of {the environment in which the measurement takes place}.{the environment in which the measurement takes place}.
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 31
How to lead? How to organize?
How to motivate?
How to collaborate?
How to create good ideas?
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 32
(^) Projects get into trouble whenProjects get into trouble when ……
^ Software people donSoftware people don’’t understand their customert understand their customer’’s needs.s needs. ^ The product scope is poorly defined.The product scope is poorly defined. Changes are managed poorly.Changes are managed poorly. The chosen technology changes.The chosen technology changes. Business needs change [or are illBusiness needs change [or are ill--defined].defined]. ^ Deadlines are unrealistic.Deadlines are unrealistic. Users are resistant.Users are resistant. Sponsorship is lost [or was never properly obtained].Sponsorship is lost [or was never properly obtained]. The project team lacks people with appropriate skills.The project team lacks people with appropriate skills. Managers [and practitioners] avoid best practices and lessons leManagers [and practitioners] avoid best practices and lessons learned.arned.
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 37
Tasks (^) Week 1 Week 2 Week 3 Week 4 Week n
Task 1 Task 2 Task 3 Task (^4) Task 5 Task 6 Task 7 Task 8 Task 9 Task 10 Task 11 Task 12
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 38
Formal Technical Reviews
Test Planning Measurement & Review
Analysis & Reporting
Process Definition & Standards
The function delivered by software differentiates products, systems, and services and provides competitive advantage in the marketplace.
These courseware materials are to be used in conjunction withwith permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 Software Engineering: A Practitioner’s Approach, 6/e and are provided 40
^ Software engineers shall commit themselves to making the analysiSoftware engineers shall commit themselves to making the analysis,s, specification, design, development, testing and maintenance of sspecification, design, development, testing and maintenance of softwareoftware a beneficial and respected profession. In accordance with theira beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, softcommitment to the health, safety and welfare of the public, softwareware engineers shall adhere to the following Eight Principles:engineers shall adhere to the following Eight Principles:
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 41
1. PUBLIC1. PUBLIC -- Software engineers shall act consistently with the public interSoftware engineers shall act consistently with the public interest.est. 2. CLIENT AND EMPLOYER2. CLIENT AND EMPLOYER -- Software engineers shall act in a manner that is in the bestSoftware engineers shall act in a manner that is in the best interests of their client and employer consistent with the publiinterests of their client and employer consistent with the public interest.c interest. 3. PRODUCT3. PRODUCT -- Software engineers shall ensure that their products and relatedSoftware engineers shall ensure that their products and related modifications meetmodifications meet the highest professional standards possible.the highest professional standards possible. 4. JUDGMENT4. JUDGMENT -- Software engineers shall maintain integrity and independence inSoftware engineers shall maintain integrity and independence in theirtheir professional judgment.professional judgment. (^) 5. MANAGEMENT5. MANAGEMENT -- Software engineering managers and leaders shall subscribe to anSoftware engineering managers and leaders shall subscribe to and promoted promote an ethical approach to the management of software development anan ethical approach to the management of software development and maintenance.d maintenance. 6. PROFESSION6. PROFESSION -- Software engineers shall advance the integrity and reputation oSoftware engineers shall advance the integrity and reputation of the professionf the profession consistent with the public interest.consistent with the public interest. (^) 7. COLLEAGUES7. COLLEAGUES -- Software engineers shall be fair to and supportive of their colSoftware engineers shall be fair to and supportive of their colleagues.leagues. 8. SELF8. SELF -- Software engineers shall participate in lifelong learning regarSoftware engineers shall participate in lifelong learning regarding the practice of theirding the practice of their profession and shall promote an ethical approach to the practiceprofession and shall promote an ethical approach to the practice of the profession.of the profession.