Date post: | 28-Dec-2015 |
Category: |
Documents |
Upload: | pamela-potter |
View: | 217 times |
Download: | 1 times |
What is software?What is software?
Software is a set of items or objects Software is a set of items or objects that form a configuration that that form a configuration that includes:includes:– ProgramsPrograms– DocumentsDocuments– DataData
Software EngineeringSoftware Engineering
IEEE definition:IEEE definition:– 1. The application of a systematic, 1. The application of a systematic,
disciplined, quantifiable approach to the disciplined, quantifiable approach to the development, operation, and development, operation, and maintenance of software; that is, the maintenance of software; that is, the application of engineering to software.application of engineering to software.
– 2. The study of approaches as in (1).2. The study of approaches as in (1).
Characteristics of softwareCharacteristics of software
Software is engineeredSoftware is engineered
Software doesn’t wear outSoftware doesn’t wear out
Software is complexSoftware is complex
Software is like an aging factorySoftware is like an aging factory
Types of softwareTypes of software
System softwareSystem software
Real-time softwareReal-time software
Business softwareBusiness software
Engineering/scientific softwareEngineering/scientific software
Embedded softwareEmbedded software
PC softwarePC software
AI softwareAI software
Software challengesSoftware challenges
How do produce quality software?How do produce quality software?
How do we meet growing demand?How do we meet growing demand?
How do we keep up with How do we keep up with maintenance costs?maintenance costs?
How do we avoid disastrous delays?How do we avoid disastrous delays?
How do we institute new standards, How do we institute new standards, technologies, etc.?technologies, etc.?
Some important termsSome important terms
Analysis vs. synthesis of a problemAnalysis vs. synthesis of a problem
Method or technique: procedure for Method or technique: procedure for producing a resultproducing a result
Tool: instrument or automated Tool: instrument or automated system for accomplishing somethingsystem for accomplishing something
Procedure: recipe for combination of Procedure: recipe for combination of tools and techniquestools and techniques
Paradigm: style of doing somethingParadigm: style of doing something
Why We Chose This Project…Why We Chose This Project…
We wanted something that was We wanted something that was interesting to usinteresting to us
We wanted a challenging project that We wanted a challenging project that would help us learn the software would help us learn the software development cycledevelopment cycle
We wanted to create a game that We wanted to create a game that other people could enjoy playingother people could enjoy playing
Lessons LearnedLessons LearnedThings are easier if you have a Things are easier if you have a working knowledge of it ahead of working knowledge of it ahead of timetime
Having group members with different Having group members with different specialties makes the development specialties makes the development process flow betterprocess flow better
Having a shared vision is extremely Having a shared vision is extremely importantimportant
Why was this so interesting?Why was this so interesting?
Various aspects of the projectVarious aspects of the project– Graphical designGraphical design– Algorithm designAlgorithm design– ImplementationImplementation– Constant incremental improvementConstant incremental improvement– Team testing and evaluationTeam testing and evaluation– User testingUser testing– Receiving feedback from othersReceiving feedback from others
Lessons LearnedLessons Learned
Get started earlyGet started early
Set realistic goalsSet realistic goals
Find another way to do itFind another way to do it
More time for testingMore time for testing
Quality terminologyQuality terminology
Error: human mistakeError: human mistake
Fault: result of mistake, evidenced in Fault: result of mistake, evidenced in some development or maintenance some development or maintenance productproduct
Failure: departure from the system’s Failure: departure from the system’s required behaviorrequired behavior
Garvin’s perspectives on Garvin’s perspectives on qualityquality
Transcendental view: something we Transcendental view: something we recognize but can’t definerecognize but can’t define
User view: fitness for purposeUser view: fitness for purpose
Manufacturing view: conformance to Manufacturing view: conformance to specificationspecification
Product view: tied to inherent product Product view: tied to inherent product characteristicscharacteristics
Value-based view: depends on Value-based view: depends on customer’s willingness to paycustomer’s willingness to pay
Systems approachSystems approach
Identify activities and objects.Identify activities and objects.
Define the system boundary.Define the system boundary.
Consider nested systems, system Consider nested systems, system interrelationships.interrelationships.– A system is a purposeful set of A system is a purposeful set of
interconnected components to solve a interconnected components to solve a formal problem where each component formal problem where each component can also be understood as a system. - can also be understood as a system. - Dr. LongeneckerDr. Longenecker
Building a house vs. softwareBuilding a house vs. softwareDetermining and analyzing Determining and analyzing requirementsrequirements
Producing and documenting the Producing and documenting the designdesign
Detailed specificationsDetailed specifications
Identifying and designing Identifying and designing componentscomponents
Building componentsBuilding components
Testing componentsTesting components
Integrating componentsIntegrating components
Making final modificationsMaking final modifications
Continuing maintenanceContinuing maintenance
Requirements Requirements analysis and definitionanalysis and definition
System designSystem design
Program designProgram design
Writing programsWriting programs
Unit testingUnit testing
Integration testingIntegration testing
System testingSystem testing
System deliverySystem delivery
MaintenanceMaintenance
Key factors altering software Key factors altering software engineering practice engineering practice
(Wasserman)(Wasserman)criticality of time-to-market for commercial criticality of time-to-market for commercial productsproductsshifts in economics of computing (lower HW, shifts in economics of computing (lower HW, higher development/maintenance costs)higher development/maintenance costs)availability of powerful desktop computingavailability of powerful desktop computingextensive local- and wide-area networkingextensive local- and wide-area networkingavailability and adoption of OO technologyavailability and adoption of OO technologygraphical user interfacesgraphical user interfacesunpredictability of waterfall model of unpredictability of waterfall model of developmentdevelopment
Wasserman’s basis for good Wasserman’s basis for good software engineeringsoftware engineering
AbstractionAbstractionAnalysis and design methods and Analysis and design methods and notationsnotationsUser interface prototypingUser interface prototypingSoftware architectureSoftware architectureSoftware processSoftware processReuseReuseMeasurementMeasurementTools and integrated environmentsTools and integrated environments
Information systems exampleInformation systems examplePiccadilly Television: regional British TV Piccadilly Television: regional British TV franchisefranchise
Advertising constraints:Advertising constraints:– alcohol adverts only after 9pmalcohol adverts only after 9pm– if actor in show, no same actor in advert within 45 if actor in show, no same actor in advert within 45
minutesminutes– if advert in class of product, no other advert in if advert in class of product, no other advert in
same class during same breaksame class during same break– rates dependent on amount of time boughtrates dependent on amount of time bought
Software to determine, track advertising timeSoftware to determine, track advertising time
Real-time exampleReal-time example
Ariane-5 rocket, from European Ariane-5 rocket, from European Space AgencySpace Agency
June 4, 1996: functioned well for 40 June 4, 1996: functioned well for 40 seconds, then veered off course and seconds, then veered off course and was destroyedwas destroyed
Contained four satellites: cost was Contained four satellites: cost was $500 million$500 million
Reused code from Ariane-4 rocketReused code from Ariane-4 rocket
Ariane-5 definition of qualityAriane-5 definition of quality
From Lions report:From Lions report:– “… “… demonstrated the high quality of the demonstrated the high quality of the
Ariane-5 programme as regards Ariane-5 programme as regards engineering work in general and engineering work in general and completeness and traceability of completeness and traceability of documents.”documents.”
– “… “… the supplier of the SRI … was only the supplier of the SRI … was only following the specification given to it. … following the specification given to it. … The exception which occurred was not The exception which occurred was not due to random failure but a design error.”due to random failure but a design error.”