College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software...
-
Upload
roy-underwood -
Category
Documents
-
view
216 -
download
1
Transcript of College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software...
College of Engineering and Computer ScienceCollege of Engineering and Computer ScienceComputer Science DepartmentComputer Science Department
CSC 131CSC 131Computer Software EngineeringComputer Software Engineering
Fall 2006 Fall 2006
Lecture # 1Lecture # 1(Ch. 1, 2, & 3)(Ch. 1, 2, & 3)
What is What is Software?Software?
A set of instructions that are designed to A set of instructions that are designed to accomplish a desired task or function.accomplish a desired task or function.
Software Includes:Software Includes:ProgramsProgramsDocumentsDocumentsData…Data…
Software Software Characteristics…Characteristics…
Software is engineered or developed.Software is engineered or developed.
Software does not wear out, but it Software does not wear out, but it deteriorates.deteriorates.
Software is still mostly custom built.Software is still mostly custom built.
Wear vs. Wear vs. DeteriorationDeterioration
idealized curve
change
actual curve
Failurerate
Time
increased failurerate due to side effects
The Cost of The Cost of ChangeChange
Definition Development After release
Software Software ApplicationsApplications 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 WebApps (Web applications)WebApps (Web applications)
Software EngineeringSoftware Engineering
Classic Definition (1969)Classic Definition (1969)
“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”
“Software Engineering: (1) The application of a systematic, disciplines, 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).”
Software Engineering & Problem Software Engineering & Problem SolvingSolving
COMPUTER SCIENCE
CUSTOMER
SOFTWAREENGINEERING
Theories ComputerFunctions Problem
Tools and Techniques to
Solve Problems
Characteristics of an Engineering ProcessCharacteristics of an Engineering Process Predictable ResultsPredictable Results
Product will be produced.Product will be produced.Production/release time is known in advanceProduction/release time is known in advanceIf results were predictable we would not see V1.0.1, If results were predictable we would not see V1.0.1,
V 1.0.2, etc. (Are these are bug fix releases..?)V 1.0.2, etc. (Are these are bug fix releases..?)
Measurable ProgressMeasurable Progress
Product goes through well defined phasesProduct goes through well defined phasesEngineers can reliably measure progressEngineers can reliably measure progressMetrics can be defined to provide accurate Metrics can be defined to provide accurate
indication of progress and cost. indication of progress and cost.
Characteristics of an Engineering ProcessCharacteristics of an Engineering Process
Reaction to ChangeReaction to ChangeThe product is well planned and The product is well planned and
documenteddocumentedChanges in requirements is well Changes in requirements is well
anticipatedanticipatedImpact of change more readily Impact of change more readily
assessed.assessed.
The ProcessThe Process
Software Engineering
A Layered A Layered TechnologyTechnologySoftware Engineering
a “quality” focusa “quality” focus
process modelprocess model
methodsmethods
toolstools
Software ProcessSoftware Process
DefinitionDefinition
The activities, techniques, tools, The activities, techniques, tools, and individuals to produce and individuals to produce software.software.
Process PrinciplesProcess Principles Prescribes all major activitiesPrescribes all major activities
Uses resources, within a set of constraints, to produce Uses resources, within a set of constraints, to produce intermediate and final products.intermediate and final products.
May be composed of sub-processes.May be composed of sub-processes.
Each activity has entry and exit criteria.Each activity has entry and exit criteria.
Activities are organized in a sequence.Activities are organized in a sequence.
Has a set of guiding principles to explain goals.Has a set of guiding principles to explain goals.
Constraints may apply to activity, resource or product.Constraints may apply to activity, resource or product.
Process Assessment Model:Process Assessment Model:Capability Maturity Model (CMM)Capability Maturity Model (CMM)
Developed by SEI – (Software Engineering Institute at Developed by SEI – (Software Engineering Institute at Carnegie Mellon)Carnegie Mellon)
Five Process Maturity LevelsFive Process Maturity Levels Level 1: Level 1: Initial- Initial-
ad hoc: few processes are establishedad hoc: few processes are established Level 2: Level 2: Repeatable Repeatable – –
Basic processes are defined to repeat earlier successes Basic processes are defined to repeat earlier successes on projectson projects
Level 3: Level 3: DefinedDefined
processes documented, standardized,and integrated processes documented, standardized,and integrated into the organizationinto the organization
CMM Cont.CMM Cont.
Level 4: Level 4: Managed –Managed –
detailed software processes measures are established.detailed software processes measures are established.
Level 5: Level 5: Optimizing- Optimizing-
Continues process improvement is established by Continues process improvement is established by quantitative feedback. quantitative feedback.
Software Process ModelsSoftware Process Models Strategy need to be developed to solve an actual Strategy need to be developed to solve an actual
problem.problem. This strategy encompasses: Process, Methods, and This strategy encompasses: Process, Methods, and
tools.tools.
This strategy is known as a Process ModelThis strategy is known as a Process Model The process model is chosen based on the The process model is chosen based on the
following:following:
Nature of the projectNature of the projectMethods and tools to be usedMethods and tools to be usedDeliverables that are requiredDeliverables that are required
Process as Problem SolvingProcess as Problem Solving
software Development can be characterized as a problem solving software Development can be characterized as a problem solving processprocess
statusquo
problemdefinition
technicaldevelopment
solutionintegration
Variations in the ProcessVariations in the Process Regardless of exact procedure, all broadly follow the these phases of Regardless of exact procedure, all broadly follow the these phases of
SW Life CycleSW Life Cycle
Requirements phaseRequirements phaseSpecification phaseSpecification phaseDesign phaseDesign phaseImplementation phaseImplementation phaseTesting phaseTesting phaseMaintenance phaseMaintenance phase
Some use different terms – some combine phasesSome use different terms – some combine phases
Software Life-Cycle ModelsSoftware Life-Cycle Models
DefinitionDefinition• The series of steps through which the product The series of steps through which the product
progressesprogresses
The model specifiesThe model specifies
the various phases of the processthe various phases of the process e.g., requirements, specification, design…e.g., requirements, specification, design…
the order in which they are carried outthe order in which they are carried out
Software Lifecycle ModelsSoftware Lifecycle Models
Build-and-fixBuild-and-fixdevelop systemsdevelop systems
without specs or designwithout specs or design modify until customer is satisfiedmodify until customer is satisfied
Why doesn’t build-and-fix scale?Why doesn’t build-and-fix scale? changes during maintenancechanges during maintenance most expensive!most expensive!
Lifecycle ModelsLifecycle Models
Waterfall model - Also Waterfall model - Also known as Linear known as Linear sequential modelsequential model
RequirementsPhase
SpecificationPhase
DesignPhase
Implementation & Integration
Phase
RequirementsDescription
Specification
Design Docs
Product
Drawbacks of Waterfall ModelDrawbacks of Waterfall Model Document-driven modelDocument-driven model
customers cannot understand them …customers cannot understand them … imagine an architect just showing you a textual spec!imagine an architect just showing you a textual spec!
first time client sees a working product is after it has been first time client sees a working product is after it has been coded. Problems here?coded. Problems here?
leads to products that don’t meet customers needsleads to products that don’t meet customers needs Assumes feasibility before implementationAssumes feasibility before implementation
re-design is problematicre-design is problematic works best when you know what you’re doingworks best when you know what you’re doing
when requirements are stable & problem is well-knownwhen requirements are stable & problem is well-known
The Primary Goal:The Primary Goal:High Quality SoftwareHigh Quality Software
Critical Quality Critical Quality AttributesAttributes
ReliabilityReliabilityMaintainabilityMaintainabilityDependabilityDependabilityEfficiencyEfficiencyUsabilityUsability
Other AttributesOther Attributes
CompletenessCompleteness CompatibilityCompatibility PortabilityPortabilityScalabilityScalability RobustnessRobustness TestabilityTestability Reusability……Reusability……
Questions…?Questions…?
What is next..?What is next..?Deliverable # 1Deliverable # 1