Meltem Özturan www.mis.boun.edu.tr/ozturan/samd 1 1
The systems development life cycle (SDLC) provides an overall framework for the process of system development, but the developer relies on many more concepts for help, including methodologies, models, tools, and techniques leading to different approaches. (Methodologies) Methodologies Comprehensive guidelines to follow for completing every activity in the system development life cycle, including specific models, tools and techniques May contain instructions about how to use models, tools and techniques We will examine a number of different methodologies for system development 2
(Models) Models Model: A representation of some important aspect of the real world (abstraction) Models used in system development include representations of inputs, outputs, processes, data, objects, object interactions, locations, networks, and devices etc. Most models are graphical diagrams and charts Models of system components Flow chart, Data flow diagram (DFD), Entity-relationship diagram (ERD), Structure chart, Use case diagram, Class diagram, etc. Models to manage the development process PERT chart, Gantt chart, Organizational hierarchy chart, etc. (Tools) Tools Tool: Supportive software that helps create models or other components required in the project Examples of tools Project management application Drawing/graphics application Word processor/text editor Computer-aided system engineering (CASE) tools Integrated development environment (IDE) Database management application Reverse-engineering tool Code generator tool 3
(Techniques) Techniques Technique: a collection of guidelines that help the analyst complete a system development activity or task Examples of techniques Strategic planning techniques Project management techniques User interviewing techniques Data-modeling techniques Relational database design techniques Structured analysis technique Structured programming technique Software-testing techniques (e.g. usability testing) Object-oriented analysis and design techniques Relationship among the components of a methodology 4
Approaches Structured Approach Computer-Aided Software Engineering Prototyping Joint Application Design Rapid Application Development Extreme Programming Object-Oriented Approach (Structured Approach) Uses the traditional methodology consists of planning, analysis, design and implementation phases for system development. Approach is made up of: 1. Structured analysis 2. Structured design 3. Structured programming Approach is process centered 5
(Structured Approach) Weaknesses of the Structured Approach Techniques address some but not all of the activities of analysis and design Critics want a more comprehensive set of techniques Many thought data modeling using structure chart and ER diagram were more important than modeling processes (using dataflow diagrams) However, the structured approach overall still made processes rather than data the central focus Many felt a strategic planning technique needed to be included as well 6
(Computer-Aided Software Engineering) A system development methodology that focuses on strategic planning, data modeling, and automated tools CASE tools provide automated support for some portion of the systems development process. Reverse Engineering refers to the process of creating design specifications for a system or program module from program code and data definitions. Reengineering is similar to Reverse Engineering but also includes analysis features that alters an existing system in an effort to improve its quality or performance (Prototyping) An iterative process of systems development in which requirements are converted to a working system that is continually revised through close collaboration between analyst and users. A prototype can be developed with visual development tools, with the query, screen, and report design tools of a database management system; and with case tools. Advantages: Involves users in analysis and design Capture requirements in concrete, rather than verbal or abstract, form 7
(Joint Application Design - JAD) A structured process in which users, managers and analyst work together for several days in a series of intensive meetings to specify or review system requirements. Group members are more likely to develop a shared understanding of what the information system is supposed to do. JAD can be substituted for personal interviews at any appropriate juncture during the SDLC. (Rapid Application Development - RAD) A systems development methodology created to radically decrease the time needed to design and implement information systems. RAD relies on extensive user involvement, JAD sessions, prototyping, integrated CASE tools, and code generators. Follows the traditional SDLC but the phases are shortened and combined with each other to produce a more streamlined development technique. 8
(extreme Programming) Extreme Programming (XP) is a software development approch that takes good software development practices and pushes them to extreme lengths. Key emphases of XP are its use of two-person programming teams, and having a customer on-site during the development process. Communication, simplicity, courage and feedback are the four values of XP. Coding, testing, listening and designing are the four activities of XP. (Object-Oriented (OO) Approach) Views information systems as collections of interacting objects that work together to accomplish tasks Focus on things of interest and how they behave Approach is made up of: 1. OO analysis 2. OO design 3. OO programming Key benefits of the OO Approach are naturalness and reuse 9
(SDLC Variations) Depending on the methodology analysts encounter many variations of SDLC in practice Based on: Phases Iteration Emphasis on people Speed of development (SDLC Variations - Phases) There are variations due to the number of phases and/or namings Waterfall Model of SDLC Satzinger et al (2002) Fig 3-13 10
(SDLC Variations - Iteration) Process of looping through the same development activities multipletimes Satzinger et al (2002) Fig 3-17 Satzinger et al (2002) Fig 3-15 (SDLC Variations Emphasis on People) Human activity must be studied in detail as well as technical aspects 11
(SDLC Variations Speed of Development) Try to speed up activities in each phase RAD Rapid Application Development JAD Joint Application Development Prototyping Extreme Programming 12