Ch 1 The Systems Development Enviroment
three elements that work together to form an organizational approach to systems and analysis and design
- methologies - techniques -and tools
agile methodologies are not for every project. agile and adaptive process is recommended when projects involve:
- unpredictable or dynamic requirements - responsible and motivated developers, and - customers who understand the process and will get involved
the agile methidologies share three key principles
1 - a focus on adaptive rather than predictive methodologies 2 - a focus on people rather than roles 3 - a focus on self-adaptive processes
object class
a logical grouping of objects that have the same (or similar attributed and behavoirs (methods)
manual form of central respository is called
a project dictionary or workbook
systems development methodology
a standard process followed in an organization to conduct all the steps necessary to analyze, design, implement, and maintain info systems
object
a structure that encapsulates (or packages) attributes. an object is an abstraction of a real-world thing in which data and processes are placed together to model the structure and behavior of the real-world object
personnel
agile -> required continuous presence of critical mass of scarce experts traditional -> needs a critical mass of scarce experts during project definition but can work with fewer later in the project
dynamism
agile -> simple design and continuous refactoring are excellent for highly dynamic environments but a source of potentially expensive rework for highly stable environments traditional -> detailed plans and big design upfront, excellent for highly stable environments but a source of potentially expensive rework for highly dynamic environments
culture
agile -> thrives in a culture where ppl feel confortable and empower by having many degree of freedom traditional -> thrives in a culture where people feel confortable and empowered by having their roles defined by clear practices and procedures
criticality
agile -> untested on satefy-critical products traditional -> methods evolved to handle highly critical products
size
agile method -> well matched to small products and teams traditional methods -> methods evolved to handle large products and teams
rational unified process (RUP)
an object-oriented systems development methodology. RUP establish four phases of development: inception, elaboration, construction, and transition. Each phase is organized into a number of seperate iterations
3 - a focus on self-adaptive processes
as software is developed, the process used to develop it should be refined and improved
products, outputs, and deliverables: implementation
code, documentation, training procedures, and support capabilities
application software
computer software designed to support organizational functions or processes
left on page 12 out of 23
conti
products, outputs, and deliverables: analysis
description of the current system and where problems or opportunities exist, with a general recommendation on how to fix, enhance, or replace the current system explanation of alternative systems and justification for chosen alternative
a well-known instance of one of the agile methodologies is
eXtreme programming
examples of agile methodologies
eXtreme programming, adaptive software development, scrum, feature driven development, etc
iterative development
focuses on the frequent production of working versions of a system that have a subset of the total number of required features. provides feedback to customers and developers alike
products, outputs, and deliverables: design
functional, detailed specifications of all system elements (data, processes, inputs, and outputs) technical, detailed specifications of all system elements (programs, files, network, system software, etc) acquisition plan for new technology
products, outputs, and deliverables: maintenance
new versions or releases of software with associated updates to documentation, training, and support
1 - a focus on adaptive rather than predictive methodologies
one mechanism for dealing lack of predictability is iterative development
the traditional waterfall SDLC (criticism)
one phase ends and another began once a milestone had been reached -> had the property of locking users into requirements that had been previously determined, even though those requirements might have changed the role of system users or customers was narrowly defined -> limited user involvement reinforced the tendency of locking in requirements too early, even after business conditions had changed analysis and design are given hard-and-fast dates for completion and success is overwhelmingly measured by whether those dates are met the result of focusing on deadlines rather than on good practice is unnecessary rework and maintenance costs account for 40 to 70 percent of systems development costs
products, outputs, and deliverables: planning
priorities for systems and projects; an architecture for data, networks, and selection hardware, and information systems management are the result of associated systems detailed steps, or work plan, for project specification of system scope and planning and high-level system requirements or features assignment of team members and other resources system
an intergrated and standard database is called a
repository and is the common method for providing product and tool integration, and has been a key factor in enabling CASE to more easily manage larger, more complex projects and to seamlessly integrate data across various tools and products
2 - a focus on people rather than roles
roles are not as important as the individuals who fill those roles
instead of systems requirements being produced in analysis, system specifications being created in design, and coding and tesing done at the beginning of implementation, current practice combines all of these activities into a
single analysis-design-code-test process these activities are at the heart of system development
five critical factors that distinguish agile and traditional approaches to systems development
size criticality dynamism personnel culture
computer-aided software engineering (CASE) tools
software tools that provide automated support for some portion of the systems development process support a wide variety of SDLC activities used to help multiple phases of the SDLC: project identification and selection, project initiation and planning, analysis, design, and implementation and maintenance many orgs do not use CASE to support all phases of the SDLC
object-oriented analysis and design (OOAD)
systems development methodologies and techniques based on objects rather than data or processes
attempts t o make systems development less of an art and more of a science are usually referred to as
systems engineering or software engineering
information systems and analysis
the complex organizational process whereby computer-based info systems are developed and maintained
maintenance
the final phase of the SDLC, in which an information system is systematically repaired and improved in a sense, maintenance is not a separate phase but a repetition of the other life cycle phases required to study and implement the needed changes
planning
the first phase of the SDLC in which an organization's total info system needs are identified, analyzed, prioritized, and arranged The organization's information system needs may result from requests to deal with problems in current procedures, from the desire to perform additional tasks, or from the realization that information technology could be used to capitalize on an existing opportunity. Two additional major activities are also performed during the planning phase: the formal, yet still preliminary, investigation of the system problem or opportunity at hand and the presentation of reasons why the system should or should not be developed by the organization.
implementation
the fourth phase of the SDLC, in which the information sytem is coded, tested, installed, and supported in the organization. Note the documentation and training programs are finalized during the implementation; documentation is produced throughout the life cycle, and training (and education) occurs from the inception of a project
System analyst
the organizational role most responsible for the analysis and design of information systems the primary role is to study the problems and needs of an organization in order to determine how people, methods, and info technology can be best combined to bring about improvements in the organization
logical design
the part of the design phase of the SDLC in which all functional features of the system chosen for development in analysis are described independently of any computer platform
physical design
the part of the design phase of the SDLC in which the logical specifications of the system from logical design are transformed into technology-specific details from which all programming and system construction can be accomplished
Inheritance
the property that occurs when entity types or objects classes are arranged in a hierarchy and each entity type or object class assumes the attributes and methods of its ancestors, that is, those higher up in the hierarchy. Inheritance allows new but related classes to be derived from existing classes
analysis
the second phase of the SDLC in which system requirements are studied and structured involves thoroughly studying the organization's current procedures and the information systems used to perform organizational tasks two subphases: 1) requirements determination -> analysts work with the user to determine what the user want from the proposed system 2)analysts study the requirements and structure them according to their interrelationships and eliminate any redundancies
design
the third phase of the SDLC in which the description of the recommended solution is converted into logical and then physical system specifications
systems development life cycle (SDLC)
the traditional methodology used to develop, maintain, and replace, information systems the specific steps and their sequence are meant to be adapted as required for a project, consistent with management approaches - planning - analysis - design - implementation - maintenance