230 likes | 381 Views
Systems Analysis & Design. The Rise of Computer Science Machine Language (1 st Gen) Assembly Language (2 nd Gen) Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.) CASE (4 th Gen)? IT System Complexity. The CHAOS Report (1994).
E N D
Systems Analysis & Design • The Rise of Computer Science • Machine Language (1st Gen) • Assembly Language (2nd Gen) • Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.) • CASE (4th Gen)? • IT System Complexity
The CHAOS Report (1994) • Produced by the Standish Group via surveys, focus groups, and case studies • http://www.standishgroup.com/sample_research/chaos_1994_1.php • Project Resolution Types • Success = On-Time, On-Budget, Fully Featured • Challenged = Over-Time, Over-Budget, Fewer Features • Impaired = Cancelled • A lot of interesting findings about Software Development track record
Project Success Factors “The three major reasons that a project will succeed are user involvement, executive management support, and a clear statement of requirements. There are other success criteria, but with these three elements in place, the chances of success are much greater. Without them, chance of failure increases dramatically.” – The Chaos Report (1994), Standish Group
Systems Analysis & Design • p.3: "Systems analysis and design emerged from the need to perform certain activities around, and particularly prior to, the steps involved in developing a computer system using software engineering tools and techniques."
The Cost of Defects Cost of Defects Specification Planning Programming Operation
Process Defined • A process: a series of steps involving activities, constrains, and resources that produce an intended ouput of some kind • A process involves a set of tools and techniques
Juggle JuggleJuggle • Phase I Requirements • All balls must remain in motion • Only one person at a time can touch a ball (ball must be passed in the air) • Each person may only touch one ball at a time • Juggle for 15 seconds without dropping the ball • Phase II Requirements • All phase I requirements apply • The ball cannot be passed to the person by your side
The Importance of Processes • Impose consistency and structure on a set of activities • Guide us to understand, control, examine, and improve the activities • Enable us to capture our experiences and pass them along
Capability Maturity Model Integration (CMMI ) • Carnegie Mellon University
Software Development Process Models or Software Development Life Cycle (SDLC) • Waterfall model • V model • Prototyping model • Operational specification • Transformational model • Spiral model • Phased development: increments and iterations • Agile methods
Waterfall Model • One of the first process development models proposed • Works for well understood problems with minimal or no changes in the requirements • Simple and easy to explain to customers • It presents • a very high-level view of the development process • sequence of process activities • Each major phase is marked by milestones and deliverables (artifacts)
Waterfall Model (continued) This version differs from the book but the idea is the same:
Software Process ModelsWaterfall Model (continued) • There is no iteration in waterfall model • Most software developers apply a great many iterations
Software Process ModelsDrawbacks of The Waterfall Model • Provides no guidance on how to handle changes to requirements/design during development (assumes requirements/design can be frozen) • Views software development as manufacturing process rather than as creative process • There is no iterative activities that lead to creating a final product • Long wait before a final product • Lacks Business Process Redesign!
Software Process ModelsPhased Development: Increments and Iterations • Shorter cycle time • System delivered in pieces • enables customers to have some functionality while the rest is being developed • Allows two systems functioning in parallel • the production system (release n): currently being used • the development system (release n+1): the next version
Software Process ModelsPhased Development: Increments and Iterations(continued)
Software Process ModelsPhased Development: Increments and Iterations • Incremental development: starts with small functional subsystem and adds functionality with each new release • Iterative development: starts with full system, then changes functionality of each subsystem with each new release
Software Process ModelsPhased Development: Increments and Iterations • Phased development is desirable for several reasons • Training can begin early, even though some functions are missing • Markets can be created early for functionality that has never before been offered • Frequent releases allow developers to fix unanticipated problems globaly and quickly • The development team can focus on different areas of expertise with different releases
Software Process ModelsAgile Methods • Emphasis on flexibility in producing software quickly and capably • Agile manifesto http://www.agilemanifesto.org/ • Value individuals and interactions over process and tools • Prefer to invest time in producing working software rather than in producing comprehensive documentation • Focus on customer collaboration rather than contract negotiation • Concentrate on responding to change rather than on creating a plan and then following it
Software Process ModelsAgile Methods: Examples of Agile Process • Extreme programming (XP) • Crystal: a collection of approaches based on the notion that every project needs a unique set of policies and conventions • Scrum: 30-day iterations; multiple self-organizing teams; daily “scrum” coordination
The Big ? • What about process redesign? • What does it profit the business if all we do is automate the process as is? • What about COTS? • What is the answer?