Chapter 1 System Development Environment Definition Information systems analysis and design: The organizational process to develop computer-based information systems. History In the early years of computing, analysis and design were an art. Then software engineering made analysis and design a disciplined process. The systems developer s job has moved from builder to integrator. A-In the 1950s, the development effort concentrated on the processes the software performed; emphasis was placed on automating existing processes; all applications were developed in machine language or assembly language and developed from scratch. B-In the 1970s, systems development became more disciplined as many people worked to make it more like engineering. C-In the 1980s, microcomputers became key organizational tools; the software industry expanded greatly; fourth-generation languages were used more and more to write applications, and CASE tools were developed. D-In the 1990s, -the focus shifted to system integration, and -developers were using visual programming environments to design user interfaces. - Databases began residing on servers, as well as the application logic. - Companies began purchasing enterprise-wide systems and - more and more systems development focused on the Internet, particularly the Web. E-The current focus is on -Web-based systems development and -wireless components. - Many system implementations use a three-tier design. - Companies may assemble their systems using off-the-shelf components
-or by using application service providers. SDLC The five systems development life cycle phases are a-planning, b-analysis, c-design, d-implementation, and e-maintenance. Planning phase: an organization s total information system needs are identified, analyzed, prioritized, and arranged. Analysis phase: requirements are gathered from users. The requirements are then studied and organized. Finally, any redundancies are eliminated. The output of this phase is a solution recommended by the analysis team. Design phase: Analysis requirement is converted into logical and then physical system specifications. Implementation phase: The information system is coded, tested, installed, and supported in the organization. Maintenance During the maintenance phase, the system is systematically repaired and improved.
Problems of SDLC Several problems with the traditional waterfall SDLC 1- that the SDLC forces dynamic processes into timed phases that were doomed to fail. Although designing software is a form of engineering, it is a much more dynamic process than physical engineering. 2-The downhill nature of the process treats each phase as separate and complete unto itself and therefore the need for feedback is often ignored resulting in early errors or omissions being carried into later stages where they are harder to identify and correct. 3- The SDLC has resulted in a significant amount of process and documentation. Many organizations have a large overhead of staff whose sole purpose is to create and maintain the documentation for the SDLC. 4- The roles of system users and customers are often narrowly limited to the early phases such that requirements may be locked-in too early and sometimes even after business requirements changed. CASE tools -Provide automated support for some portion of the systems development life cycle. -Have a repository that contains all of the metadata (such as data names, format, uses and location) for data elements as well as the system specifications. -Automate the repository for easier updating. -Include diagramming tools to produce dataflow diagrams, entity-relationship diagrams, screen and report designs. -Automate routine tasks to help programmers and analysts do their jobs better. -Allow for code and Data Definition Language (DDL) generation and implementation, making them fully support the entire SDLC. -May provide security features, version control, import and export facilities, and facilities for backup and recovery, user account management, and usage accounting. -The repository is likely the most important component of a comprehensive CASE system because it provides the mechanism through which tool and activity integration can occur and can be utilized by all team project members, promoting a single view of the project. CASE tools and development phases Project identification The purpose of project identification and selection is to examine the information needs of the organization and to segment and rank these needs so that the most beneficial projects are identified and selected. CASE provides diagramming and matrix tools to create and structure information. Initiation and planning organize a project team and to create a high-level project plan. CASE tools provide repository and documentation generators to develop project plans.
Analysis The purpose of analysis is to determine the requirements for the development project within the cost, labor, and technical constraints of the organization. CASE provides diagramming tools to create process, logic, and data models. Design The purpose of design is to create detailed plans of the software system. During design, CASE provides form and report generators to prototype designs, and analysis and documentation generators to define specifications. Implementation The purpose of implementation is to translate a system design specification into an information system. During implementation, module code and DDL generators in addition to analysis, form, and report generators are used to develop the system. Documentation generators are used to develop system and user documentation. Maintenance The purpose of maintenance is to make changes to existing software systems. All CASE tools are used and there is an emphasis on the central repository for both design and code reference and modification. Rapid Application Development RAD (Rapid Application Development) is a systems development methodology created to decrease the time needed to design and implement an information system. One of the hallmarks of RAD is extensive user involvement through traditional JAD (Joint Application Design) sessions as well as evaluation of prototypes. RAD also includes integrated CASE tools and code generators. Service Oriented Architecture One of several newer current approaches to systems development based on building complete systems through assembling software components, each of which models generic business functions.
Agile Self-adaptive - Agile Methodologies promote a self-adaptive software development process. Focus on the individual - While other methodologies focus on roles that individuals play in a project team, Agile Methodologies focus more on the individual. As software is developed, the process used to develop it is refined and improved through a review process done by the development team, (adaptive process). Agile Methodologies differ from traditional system development methodologies in that there is less focus on process and more focus on the people involved in the project. Not predictive like other methodologies Read about extreme programming: Scrum: http://en.wikipedia.org/wiki/scrum_%28development%29 Extreme programming: http://en.wikipedia.org/wiki/extreme_programming Individual Homework: Use google.com and other search engines to research about Scrum and Extreme Programming. Which one of these 2 processes you can relate to? Why? Would you use this method in your group project? Use Microsoft s Memo template to create a memo to express your answers for this homework. Name the file as lastname-firstname-chapter-1-homework.docx. Upload to my web box. Due Date: 1/8 11:59pm