Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

INF Chapter 11 Summary

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Chapter 11 Summary

1. Decision to Develop Custom Software:

 An organization decides to create custom software for a specific system or task.

2. Requirement Analysis:

 The software requirements are determined and documented. This phase involves
understanding what the software should do and defining its functionalities and features.

3. Modularization:

 If the system is large enough, it is divided into modules. Different programmers or teams
work on these modules separately.

4. Coding:

 Programmers write sequences of instructions (code) for their respective modules. These
instructions guide the computer through the tasks defined in the requirements.

5. Testing:

 Each module is tested individually to ensure it works as intended. Once individual modules
are confirmed, they are integrated, and the entire system is tested to verify its proper
functioning.

6. Installation:

 The developed system is installed on the organization's computers or servers.

7. User Adoption:

 Users within the organization start using the new system for their tasks.

8. Maintenance and Modifications:

 Over time, modifications and updates may be required. Programmers modify the code, and
the modified programs go through testing, installation, and usage stages.

9. System Replacement:

 Eventually, the system may become outdated and unable to meet new requirements. When
this happens, a new information system is needed, and the process starts anew.

The software development life cycle is cyclical, as organizations constantly evolve and require new or
updated systems to meet their changing needs.

In the traditional approach, known as the System Development Life Cycle (SDLC), these steps are
followed in a sequential manner. However, this approach has its limitations, leading to the
exploration of alternative methods to improve efficiency and flexibility, which are discussed in the
following section.

11.2 THE SYSTEM DEVELOPMENT LIFE CYCLE APPROACH


The System Development Life Cycle (SDLC) approach, first described in 1970, provided a systematic
method for software development, replacing earlier chaotic processes. Despite its drawbacks, the
SDLC method laid the foundation for structured software development. While newer methods exist
today, understanding the SDLC is valuable due to its historical significance and its influence on
contemporary approaches.

How the SDLC Works: The SDLC is depicted as a series of stages, resembling a waterfall, hence it's
sometimes called the waterfall method. Each stage produces a deliverable, typically a document, and
no stage is considered finished until its deliverable is ready. Stage reviews are conducted, leading to
different outcomes, including authorization to proceed to the next stage, making changes and
proceeding, re-review, going back to an earlier stage for modifications, or project cancellation.

The SDLC Stages:

1. Preliminary Investigation:

 Conducted by a steering committee, this stage assesses the technical, economic, and
operational feasibility of the proposed system.

 Feasibility study document is the deliverable.

Where Users Fit In: Users may be consulted during the preliminary investigation to provide insights
into the feasibility of the proposed system.

2. Systems Analysis:

 Detailed analysis of the proposed system's requirements is conducted.

 Methods include reading existing documents, observation, interviews, and


questionnaires to understand user needs.

 Functional specification document is the deliverable.

Where Users Fit In: Users' active participation is crucial during analysis to ensure their requirements
are accurately captured. Clear communication about the importance of specific needs is vital.

3. Systems Design:

 Detailed system specifications are created based on the functional specification.

 Design considerations include user interface, system architecture, and data storage.

 Design specification document is the deliverable.

Where Users Fit In: Users may provide feedback on system design elements to ensure usability and
alignment with their requirements.

4. Implementation (Coding):

 Programmers or developers write the actual code for the system based on the design
specifications.

 Unit testing is performed on individual components/modules.

Where Users Fit In: Users are not directly involved in coding but may be engaged for user acceptance
testing in the next stage.
5. Testing:

 The system undergoes rigorous testing, including integration testing and user
acceptance testing, to ensure it meets the specified requirements.

 Bugs and issues are identified and resolved.

Where Users Fit In: Users play a significant role in user acceptance testing, where they validate the
system's functionality against their needs and requirements.

6. Deployment:

 The system is deployed in the organization's environment, and users start using it for
their tasks.

Where Users Fit In: Users transition from testing to actual system usage, providing feedback on any
issues encountered during real-world use.

7. Maintenance and Support:

 Ongoing support and maintenance activities are carried out to address user-reported
issues, update the system, and ensure its continued functionality.

Where Users Fit In: Users continue to provide feedback on system performance and report any
issues they encounter during regular usage. Their input guides maintenance efforts.

Understanding these stages and actively participating in relevant phases can enhance users'
contributions to the development process and improve the resulting information system's alignment
with their needs and expectations.

The Systems Development Life Cycle (SDLC) outlined in the provided text is a structured approach to
software development that encompasses several stages: Preliminary Investigation, Systems Analysis,
System Design, System Development and Test, Implementation, Operation, and Maintenance. Here's
a summary of each stage:

1. Preliminary Investigation: This phase involves determining the feasibility of the proposed
system. Economic, technical, operational, legal, and scheduling feasibility are evaluated to
decide whether the project should proceed.

2. Systems Analysis: Analysts work closely with users to understand their requirements.
Detailed documentation of requirements is created, including what the system should do,
how it should work, and what data it should handle.

3. System Design: Experienced programmers plan what programs and databases are needed
for the system. Detailed specifications are created, ensuring that less experienced individuals
can implement the system based on these plans. Computer-Aided Software Engineering
(CASE) tools can assist in this stage.

4. System Development and Test: Programmers write code and create databases based on the
design specifications. Testing is conducted in stages, including unit tests, subsystem tests,
system tests, and user tests. Bugs and errors are identified and corrected during these tests.

5. Implementation: The system is prepared for production use. This involves training users,
managing organizational change, and converting data to the new system. Different
conversion methods are used, such as direct cutover, pilot, phased, pilot-phased, and parallel
conversion.

6. Operation: The system is deployed and used in the day-to-day operations of the
organization. Professional operators ensure the system runs smoothly, is secure, and is
backed up regularly.

7. Maintenance: Regular maintenance is performed to address programming errors, deferred


features, new requirements, and enhancements. Maintenance requests are collected,
prioritized, and incorporated into the system in new versions.

For purchased software, the process includes evaluating market feasibility, analyzing the system's
compatibility with the organization's needs, designing customization if necessary, and implementing
and operating the software. Maintenance of purchased software involves requesting enhancements
from the vendor and evaluating the benefits of upgrading.

Strengths of SDLC:

 Structured Approach: SDLC provides a systematic and structured approach to software


development, ensuring that each phase is well-defined and understood.

 Control: Management has control over the development process, including timelines,
resources, and outcomes.

 Documentation: Detailed documentation at each stage helps in understanding the system


and its components thoroughly.

Weaknesses of SDLC:

 Rigidity: SDLC can be rigid, making it challenging to accommodate changes once the process
has started.

 Late Problem Discovery: Problems might only become apparent during testing phases,
making it difficult to rectify design issues without reverting to earlier stages.

 Communication Challenges: Formal specifications might not be easily understood by all


stakeholders, leading to misunderstandings and misinterpretations.

Despite its limitations, SDLC remains a valuable framework for software development, especially for
projects where careful planning, control, and documentation are critical. Adaptations and hybrid
approaches have been developed over the years to address some of its shortcomings.

11.3 OTHER SYSTEM DEVELOPMENT APPROACHES

Summary:

The passage explores alternative approaches to software development, emphasizing the inevitability
of change and the need to involve users actively. These methods acknowledge that complete
requirements can't be known in advance and advocate for adaptability.

Prototype Concept:

 Definition: A prototype is a preliminary version of an information system showcasing


essential features.
 Purposes: Prototypes serve as interactive tools for user feedback, allowing visualization of
the system's functionality.

 Approaches:

 Prototypes can replace functional specifications, enabling users to interact and


approve before developers replicate the behavior in the final system.

 Evolutionary prototyping (Rapid Application Development) involves continuous


additions to the prototype until it becomes a functional system.

Alternative Development Methods:

Joint Application Design (JAD):

 Definition: JAD involves collaborative workshops where users and technical staff jointly
develop functional and design specifications.

 Evolution: Initially face-to-face, JAD has evolved with technology, allowing virtual meetings
and improved productivity in face-to-face sessions.

Agile Development:

 Approach: Agile breaks systems into small, quickly developed pieces, resulting in usable
versions every few weeks.

 Components: User stories (descriptions of user needs) guide development in short iterations
called sprints, with daily scrum meetings for status updates.

 Priorities: Collaboration, working software, and flexibility supersede written specifications


and documentation.

DevOps:

 Approach: DevOps integrates development and operations, delivering small incremental


improvements frequently.

 Benefits: Ensures a cohesive team handles deployment, reducing delays, and fostering
collaboration.

 Implementation: Can be piloted in specific projects before organization-wide adoption.

In Summary: The passage emphasizes that regardless of the approach, all information systems follow
a lifecycle. The nature of software development mandates continuous adaptation and user
involvement, ensuring systems meet evolving needs efficiently.

11.4 MANAGING THE DEVELOPMENT PROCESS

Summary:

This section delves into the essential aspect of managing system development processes,
emphasizing the pivotal role of project managers (PMs) in orchestrating these complex tasks. Several
key concepts related to project management tools and challenges in software development are
highlighted.
Project Management:

 Role of Project Managers: PMs collaborate with users, supervise development teams,
manage resources, and ensure the successful delivery of the system.

 Resource Trade-offs: PMs balance resources (people, money, time) against system capability,
making decisions regarding system functionality, efficiency, and security.

 Planning and Monitoring: PMs create detailed plans, monitor progress, report to the IS
steering committee, take corrective actions, and escalate issues when necessary.

 Project Management Tools: Tools like Gantt charts, network charts, Critical Path Method
(CPM), and Program Evaluation and Review Technique (PERT) aid in visualizing and managing
project tasks, dependencies, and timelines.

Brooks's Law:

 Effect: Adding more staff to a late software project often results in further delays due to
communication complexities, knowledge transfer, and increased coordination efforts.

 Consideration: Adding staff early in a project can minimize negative effects, but careful
planning is essential.

Estimation Challenges and Pitfalls:

 Difficulty in Estimating: Estimating system development effort is challenging and lacks


reliable methods, leading to various estimation techniques and rules of thumb.

 Impact of Purpose: Effort estimation varies based on the purpose of the program,
emphasizing the importance of understanding the difference between a working program, a
usable system, and a marketable product.

 Agile Approach: Agile methods prioritize team size, capability prioritization, and flexible
development based on user feedback and backlog prioritization.

Management Pressure and Decision Making:

 Pressure Dynamics: Pressure to deliver software quickly can lead to unrealistic demands,
putting pressure on project managers and teams to meet unfeasible deadlines.

 Negative Outcomes: Unrealistic expectations and pressure-driven decisions can lead to


project failure, damaged morale, and high turnover rates.

In Summary: Effective management of system development processes is crucial, demanding careful


planning, resource allocation, and realistic estimation. Understanding the complexities of software
development, adhering to Agile principles, and avoiding undue pressure on teams are essential for
successful project outcomes.

You might also like