Information Systems Process Modeling
Information Systems Process Modeling
There is not a single model of process applicable to any project, since the
process model depends on the particular type of project:
First project of its kind. Created from scratch, it requires more time.
to specify and analyze it, uncertainty creates additional risks.
Second project of its kind. The aim is to add new functionality to a
or known.
Variation of a project. An existing system is being extended, which
involves introducing reusable software components like a framework
work (framework), create new components or simply extend
the existing application through new functionality. Depending on the
the strategy to be used, the process model must vary.
Legacy rewriting project. The goal is to transform or
to reengineer an existing system, developed under
previous technologies and transform them into new technologies.
Project for the creation of reusable software. The goal is to create one or more
reusable software components must be designed in such a way
that it ensures the design is general enough to be
useful in other unknown situations, which is why there are not many projects
like this.
System improvement or maintenance project. The goal is to modify the
basic components of a system to support a new
functionality. They are usually small and only affect parts of the
system.
1
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010
2
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010
3
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010
4
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010
accepted are the prototypes (preliminary version of a system) and the reuse
(previously developed components).
1970s
1980s
1990s
Emerging Methodologies
Win-win. It extends the spiral model, emphasizing the
identification of the profit conditions for all parties, creating a
plan to achieve winning conditions and the corresponding risks. It
They consider four cycles composed of four activities:
1. Develop the objectives, constraints, and alternatives of the process and product.
of the system and subsystem.
5
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010
4. Courage: It refers to the bravery that one must have when modifying or eliminating the
code that was created with so much effort; the developer must know
when the code you developed is not useful in the system and, for the same reason,
It must be eliminated. It also refers to having the persistence to solve.
the errors in programming.
Within extreme programming, there are 12 principles that guide or lead the
development with this methodology:
2. Planning process
3. The customer on site
Pair programming
5. Continuous integration
6. Refactoring
7. Small deliveries
Simple design
9. Metaphor
10. Collective property of the code
11. Coding standard
[Link] 40-hour week
During each of these iterations, the activities will be carried out as well.
defined in the classic life cycle: requirements, analysis, design, implementation,
testing and implementation.
For example, in the initiation phase, they will focus more on the definition of requirements and
in the analysis, and during the construction, they will be relegated in favor of the
implementation and testing.
7
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010
Each software development methodology has its own approach to some extent.
for software development. These are the most general approaches, that are
they develop in various specific methodologies. These approaches are the following:
Structured programming methodologies of the 1970s, such as those initiated by Jackson, emphasized a disciplined approach to software development with a focus on logical structure and clarity, promoting step-by-step linear frameworks. These methodologies often followed strict sequences and were less adaptive to change during the development phases. In contrast, emerging agile methodologies of the 1990s, such as Extreme Programming (XP) and Scrum, introduced flexibility and iterative development cycles. They prioritized adaptability, customer collaboration, and responsiveness to changing requirements. Agile approaches favor small, rapid releases, continuous integration, and regular feedback loops, key elements that fundamentally differ from the prescriptive and less adaptive nature of structured programming. Agile thus aims to improve team communication, enhance client satisfaction, and better handle project shifts in requirements .
Dynamic simulation systems significantly impact modeling real-world systems by providing a means to mimic the behavior and evolution of complex systems over time, such as financial simulators and neural networks. Unlike static or batch processing systems that take inputs to produce fixed outputs, dynamic simulations continuously interact with an environment, adapting to changes in variables and conditions. These systems offer advantages like better forecasting, the ability to test scenarios without real-world risks, and enhanced understanding of system dynamics. They can inform decision-making processes and policy implementations by offering insights derived from modeled outcomes, thus providing a strategic edge in planning and evaluating complex real-world scenarios .
Feedback and communication are integral to the success of Extreme Programming (XP) as they facilitate a continuous loop of information exchange among team members and between developers and customers. This ongoing communication helps ensure that the development process aligns with customer needs and expectations while enabling timely adjustments. Feedback mechanisms allow for rapid iteration and refinement of code, helping to swiftly identify and resolve issues. By maintaining open channels for feedback, XP supports collaborative teamwork, enhances transparency, and builds trust within the team and with clients. Effective communication further reinforces the simplicity and flexibility XP advocates, ensuring that projects proceed smoothly without unnecessary complexity .
Extreme Programming (XP) distinguishes itself from traditional methodologies by emphasizing flexibility, simplicity, and customer satisfaction. It incorporates unique team dynamics and code management practices such as pair programming, small frequent deliveries, and collective code ownership. This methodology promotes constant communication with the client and within the team to ensure development is understandable and aligns with user requirements. Simplicity is prioritized in system functionality, design, and code. Feedback loops are maintained between developers and users, and courage is encouraged in refactoring and eliminating inefficient code. These principles ensure that all team members contribute to and take responsibility for code, foster rapid adjustments to evolving project needs, and maintain an adaptive workflow reflective of changing client demands .
Process models support the management of complexity in software systems development by providing structured frameworks that define how to address different phases of development, including requirements, analysis, design, implementation, testing, and maintenance. These models incorporate people, organizational structures, rules, policies, activities, software components, methodologies, and tools, tailored to the specific type of project. They offer guidelines for developing software in an organized manner, ensuring systematic processes and reducing uncertainty across project stages. By having well-defined processes, process models help in managing resources efficiently, coordinating activities among stakeholders, and ensuring consistency and quality in outcomes. They also facilitate the management of different types of projects, whether they are entirely new, involve modifying existing systems, or focus on creating reusable components .
Risk management plays a crucial role in the Win-win Spiral Model by systematically identifying, addressing, and mitigating risks throughout the development process. This model extends the traditional spiral model by emphasizing the need to identify profit conditions for all stakeholders and creating strategies for achieving these conditions. By evaluating alternatives against objectives and constraints, the model seeks to resolve major sources of risk in both process and product development. This proactive risk management ensures that the development process remains flexible and responsive to potential challenges, improving the likelihood of project success and satisfying stakeholder needs. Additionally, by continuously updating the life cycle plan and incorporating risk assessment in decision-making, teams can better manage uncertainties, adapt to change, and optimize resources throughout the software development .
The software development life cycle encompasses a series of steps—requirements, analysis, design, implementation, integration, testing, documentation, and maintenance—that contribute to achieving project goals and objectives by ensuring each phase builds on the previous one, refining the product incrementally. Requirements specify functional aspects, analysis provides a robust architecture, design refines the architecture for the implementation environment, and implementation involves actual coding. Integration combines system components, testing validates and verifies the system, documentation provides essential information, and maintenance extends system functionality. This structured approach ensures each aspect of development is systematically addressed to meet the desired outcomes and user needs .
Process models use strategic approaches to handle various project types by customizing their processes based on specific project needs. For first-time projects, more time is allocated for specification and analysis to address uncertainties and risks. For subsequent projects or system variations, the focus may involve adding new functionality or leveraging existing components for efficiency. Legacy rewriting projects demand strategies to transform or reengineer systems to use new technologies, requiring careful analysis of existing structures. Projects designed to create reusable software components need strategies to ensure general design for use in unknown situations. Through such tailored approaches, process models strategically support efficient development, mitigate risks, and optimize resource usage for diverse project scenarios .
Methodologies in software development must support significant basic concepts to solve problems across different application domains such as sequential, concurrent, distributed, and real-time architectures. They should adjust to the life cycle of the process, supporting all the activities like requirements gathering, analysis, design, implementation, testing, and maintenance. Methodologies should provide techniques to collect information, support extensibility and documentation, allow for the generation of models from the information compiled, and support the integrity of the generated models by verifying them and avoiding consistency errors. They also need to offer well-defined inputs and outputs for integration with various methods and have specific and standardized notations to represent the developed models, which must include graphic elements and text. Finally, there should be confidence in the corresponding methods and tools, considering that they will remain viable in the market with adequate training and support .
The Unified Process (UP) framework enhances software development by organizing it into four iterative phases: initiation, development, construction, and transition. Each phase is structured around five fundamental workflows: requirements gathering, analysis, design, implementation, and testing. During the initiation phase, focus is on defining requirements and conducting initial analyses. As the process moves to the construction phase, emphasis shifts towards implementation and testing to solidify the system. Through iterative cycles, UP allows for incremental improvements and adaptability, ensuring each iteration adds value or functionality. This approach not only supports risk management by enabling continuous refinement but also aligns development closely with user needs and project goals, ultimately delivering a robust final product .