310 likes | 560 Views
Lecture 1. Overview of Software Life Cycle & Software Engineering Paradigms. What is Software?. Software is a set of items or objects that form a “configuration” that includes • programs • documents • data. What is Software?. software is engineered
E N D
Lecture 1 Overview of Software Life Cycle & Software Engineering Paradigms
What is Software? Software is a set of items or objects that form a “configuration” that includes • programs • documents • data...
What is Software? • software is engineered • software doesn’t wear out • software is complex • software is a ‘differentiator’ • software is like an ‘aging factory’
Software Applications • system software • real-time software • business software • engineering/scientific software • embedded software • PC software • AI software • Web applications
increased failure rate due to side effects change actual curve idealized curve Wear vs. Deterioration Failure rate Time
Methods / Techniques, e.g. chef prepare sauce Tools, e.g. typewriter Solution Paradigm, e.g. a cooking style Procedures, e.g. recipe Problem Solving Approach • Analyzing the problem • Break the problem down into sub-problems • Construction of solutions • Formation of solution to sub-problems • Synthesis of the complete solution from sub-solutions
Problem Solving • Methods/Technique • A formal procedure for producing some result • Tools • An instrument for accomplishing something in a better way • Procedure • A combination of tools and techniques that, in conjunction, produce a particular product • Paradigm • A particular approach or philosophy for building software
Software Quality • Perspectives on Quality (Gavin (1984)) • the transcendental view, where quality is something we can recognize but not define • the user view, where quality is fitness of purpose • the manufacturing view, where quality is conformance to specification • the product view, where quality is tied to inherent product characteristics • the value-based view, where quality depends on the amount the customer is willing to pay for it
Dimenstion of Quality • Quality of the Product • User - Does the job? A lot of Failure? • IT people – number & types of faults • c.f. McCall’s quality model (to be continued…) • Quality of the Process • Quality of the development and maintenance process is important • Can be examined and improved • c.f. CMM (tbc …) • Quality in the Context of the Business Environment • Return on investment
A Layered Technology Software Engineering Software Engineering tools methods process model a “quality” focus
A Common Process Framework • Common process framework • Framework activities • work tasks • work products • milestones & deliverables • QA checkpoints • Umbrella Activities
Umbrella Activities • Software project management • Formal technical reviews • Software quality assurance • Software configuration management • Document preparation and production • Reusability management • Measurement • Risk management
The Process Model:Adaptability • the framework activities will always be applied on every project ... BUT • the tasks (and degree of rigor) for each activity will vary based on: • the type of project (an “entry point” to the model) • characteristics of the project • common sense judgment; concurrence of the project team
The Primary Goal:High Quality Remember: High quality = project timeliness Why? Less rework!
Software Life Cycle • Requirements analysis and definition • System design • Program design • Program development/implementation • Unit testing • Integration testing • System testing • System delivery • Maintenance/Support
System/information engineering analysis design code test Doesn’t reflect reality Too rigid – can’t cope with changes The Linear/Waterfall Model
Present ‘false’ impression May contain implementation compromises Iterative Models (1) Prototyping RAD
Waterfall Model with Prototyping Validate Verify System/information engineering analysis design code test Prototype
Validate requirement Support Verify design analysis design code test V Model
Large human resources requirement Requirement full commitment of all parties Not applicable to non-modularizable or high risk projects Iterative Models (2) Prototyping RAD
Iterative vs. Incremental Model Incremental Model Iterative Model
P l a n n i n g R i s k A n a l y s i s C u s t o m e r C o m m u n i c a t i o n E n g i n e e r i n g C u s t o m e r C o n s t r u c t i o n & R e l e a s e E v a l u a t i o n An Evolutionary (Spiral) Model New Product development Concept development Product Enhancement Product Maintenance
WINWIN Spiral Model • Identify next-level stakeholders • Identify stakeholders’ win conditions Life cycle objectives (LCO) • (a) Reconcile win conditions (b) Establish next-level objectives, constraints and alternatives Life cycle architecture (LCA) • Evaluate process and product alternatives and resolve risks Initial operational capability (IOC) • Define next level of product and process, including partitions • (a) Validate product process definitions (b) Review and comment
Still Other Process Models • Component assembly model—the process to apply when reuse is a development objective • Concurrent process model—recognizes that different part of the project will be at different places in the process • Formal methods—the process to apply when a mathematical specification is to be developed • Cleanroom software engineering—emphasizes error detection before testing • Fourth generation technology (4GT)—enables specification of software at higher level, then generates codes automatically
References • Gavin (1984) • “What dos ‘product quality’ really mean?” Sloan Management Review, Fall:25-45.