1 / 29

Lecture 1

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

Download Presentation

Lecture 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 1 Overview of Software Life Cycle & Software Engineering Paradigms

  2. What is Software? Software is a set of items or objects that form a “configuration” that includes • programs • documents • data...

  3. What is Software? • software is engineered • software doesn’t wear out • software is complex • software is a ‘differentiator’ • software is like an ‘aging factory’

  4. Software Applications • system software • real-time software • business software • engineering/scientific software • embedded software • PC software • AI software • Web applications

  5. increased failure rate due to side effects change actual curve idealized curve Wear vs. Deterioration Failure rate Time

  6. The Cost of Change

  7. Software Poses Challenges

  8. 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

  9. 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

  10. 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

  11. 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

  12. A Layered Technology Software Engineering Software Engineering tools methods process model a “quality” focus

  13. A Common Process Framework • Common process framework • Framework activities • work tasks • work products • milestones & deliverables • QA checkpoints • Umbrella Activities

  14. Umbrella Activities • Software project management • Formal technical reviews • Software quality assurance • Software configuration management • Document preparation and production • Reusability management • Measurement • Risk management

  15. Process as Problem Solving

  16. 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

  17. The Primary Goal:High Quality Remember: High quality = project timeliness Why? Less rework!

  18. Software Life Cycle • Requirements analysis and definition • System design • Program design • Program development/implementation • Unit testing • Integration testing • System testing • System delivery • Maintenance/Support

  19. System/information engineering analysis design code test Doesn’t reflect reality Too rigid – can’t cope with changes The Linear/Waterfall Model

  20. Present ‘false’ impression May contain implementation compromises Iterative Models (1) Prototyping RAD

  21. Waterfall Model with Prototyping Validate Verify System/information engineering analysis design code test Prototype

  22. Validate requirement Support Verify design analysis design code test V Model

  23. Large human resources requirement Requirement full commitment of all parties Not applicable to non-modularizable or high risk projects Iterative Models (2) Prototyping RAD

  24. The Incremental Model

  25. Iterative vs. Incremental Model Incremental Model Iterative Model

  26. 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

  27. 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

  28. 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

  29. References • Gavin (1984) • “What dos ‘product quality’ really mean?” Sloan Management Review, Fall:25-45.

More Related