0% found this document useful (0 votes)
10 views8 pages

Information Systems Process Modeling

This document describes the key components of process models and methodologies for software development, including processes, activities, architectures, methods, strategies, and tools. It explains that the process model depends on the type of project and must consider organizational aspects, methodologies, and tools. Additionally, it describes structured and object-oriented methods, as well as diagrams and notations used.

Translated by

ScribdTranslations
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views8 pages

Information Systems Process Modeling

This document describes the key components of process models and methodologies for software development, including processes, activities, architectures, methods, strategies, and tools. It explains that the process model depends on the type of project and must consider organizational aspects, methodologies, and tools. Additionally, it describes structured and object-oriented methods, as well as diagrams and notations used.

Translated by

ScribdTranslations
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Analysis and Modeling of Information Systems

Computer Engineering Plan 2010

1.2. Emerging software development methodologies.


Process. A process defines who does what, when, and how to achieve certain
Objective. The success of organizations largely relies on the correct
definition and use of their processes. Software systems can become
very complex, to manage such complexity it is necessary to have
models of processes and appropriate software technologies.

Process model. Define how to solve the problem of development.


software systems. To develop software, certain phases need to be addressed.
of its process, which is known as the development life cycle
software. A process model must consider aspects such as the set of
people, organizational structures, rules, policies, activities,
software components, methodologies, and tools.

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

Components of a process model


Architecture. General structure of a system and varies according to the type of
system to be developed:

Batch transformation. Transformation systems on a


set of constant value entries, to generate a set of
outputs, for example a compiler.
Continuous transformation. Transformation systems over a set
from constant value inputs, to generate a set of outputs that
they differ in time, for example signal control system.
Interactive systems. Governed by external interactions, generally
a user, are controlled by event handlers, responsible for
process events generated by the user, for example a click or
press a key.
Dynamic simulation. Systems that simulate real-world systems and
they evolve over time, for example, financial system simulators,
neural networks, etc.
Real-time systems. Governed by strict time constraints and
they require guarantees in the response time, examples of controllers of
industrial processes and communication devices.
Transaction management. Systems to interact with databases
data and that include concurrent and distributed access from multiple
users, such as flight reservations and inventory control.

Activity. It is a basic unit or step of a process. In the software process.


Activities define the necessary steps to achieve goals and objectives.
The basic activities of the software development process are known
like the cycle of life:

Requirements. To specify functional aspects of the system that


they describe how a user would interact with the application, a
Requirements Model.
Analysis. To give the system a robust structure or architecture and
extensible, an Analysis Model is generated.
Design. To adopt and refine the architecture of the system and adapt it to
implementation environment, a Design Model is generated (of
structures or of objects and systems.
Implementation. To code the system, a Model is generated.
Implementation (programming languages, databases).

2
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010

Integration. To combine system components, a Model is generated.


of Integration.
Tests. To validate and verify the system, a Model is generated.
Tests (validation according to customer specifications and verification
if the system is being developed correctly).
Documentation. To describe the various aspects of the system, it
They generate the user, programmer, operator, administrator manuals.
Maintenance. To extend the functionality of the system, it is the
continuation of the life cycle, once the first version of the
system.

Methods and Methodologies. Methods define the rules for the


internal transformations of activities, while the methodologies
define the set of methods. A method is a procedure that defines tasks
or actions to be taken, where each task includes entry and exit conditions
that must be fulfilled before and after completion.

The methods must:

Support significant basic concepts to solve problems. They must


to be used in different application domains according to the architectures:
sequential, concurrent, distributed, real-time.
They must adjust to the life cycle of the process, supporting all the
activities.
They must provide techniques to collect information.
They must support their own extensibility, their own documentation.
They must allow the generation of models from the information.
compiled by the method.
They must support the integrity of the generated models, verifying and
avoiding consistency errors.
They must offer well-defined inputs and outputs that allow for integration.
of various methods.
They must have specific and standardized notations to represent
the developed models, which must include graphic elements,
text or combination of both.
They must have confidence in the corresponding methods and tools;
for which it must be considered that these will remain in the market and,
that have training and technical support.

3
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010

There is a wide variety of methods and methodologies to support the process of


software, such as structures and object-oriented.

Structured: They focus on the functional decomposition of a system.


The goal is to achieve a complete definition of the system, establishing the
input and output data. These methodologies are known as analysis and
structured design (SA/SD Structured Analysis and Structured Design)
and are based on tools such as:
Data flow diagrams. Data transformation modeling
between system functions. It is composed of processes, flow of
data, actors, and data storage (DFD).
State transition diagrams. They are used to model the
behavior over time, describing the effect of events
externals in the processes and functions.
Entity-relationship diagrams. To model a storage of
datos.
Object-oriented: They focus on modeling a system in
terms of objects. The objects of the system are initially identified to
then specify their behavior and use the following tools:
Class diagrams. They describe the essential components of the
architecture of a system. Unlike DFDs, class diagrams
they show associations between classes and not data flow
among them.
Use case diagrams. They specify a system in terms of
of its functionality. Unlike structured methodologies
the use cases are not broken down into functions of
programming.
State transition diagrams. They describe the changes of
state of the objects.
Sequence diagrams. They describe the dynamic aspects of
system, showing the flow of events between objects over time.
Collaboration diagrams. They describe the communication between
objects of a system.
Subsystem diagrams. They are used to describe groupings.
of classes in a system.

Strategies. A strategy is like a plan to achieve a goal. They affect


aspects such as the system architecture, the order in which the processes will be carried out
activities of the process and the methodologies to be used. The strategies include the
selection of the type of project to be developed, selection of a technology and
programming language (e.g. OO technology and JAVA language), other strategies

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).

Tools. Applications that support the management of the software process


and the set of these tools is known as software engineering
computer-assisted (CASE, Computer-Aided Software Engineering), whose
the objective is to assist the developer during the different activities of the cycle of
software process life: Text editors, graphic model generators
(diagrams), code generators, compilers, debuggers, verifiers,
validators, meters (monitors), configuration management and
project managers.

Software development methodologies

1970s

Structured programming sun since 1969


Structured programming Jackson since 1975

1980s

Structured Systems Analysis and Design Methodology (SSADM) since


1980
Structured Analysis and Design Technique (SADT) since 1980
Information engineering (IE/IEM) since 1981

1990s

Rapid application development (RAD) since 1991.


Object-oriented programming (OOP) throughout the 1990s
Virtual finite state machine (VFSM) since the 1990s
Dynamic Systems Development Method developed in the UK since 1995.
Scrum (development), in the late 90's
Rational Unified Process (RUP) since 1999.

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

2. Evaluate the alternatives against the objectives and constraints.


Identify and resolve the main sources of risk in the process and the
product.
3. Develop the definition of the product and the process.
4. Plan the next cycle and update your life cycle plan, including
the partitioning of the system into subsystems to be considered in cycles
parallels.

Extreme Programming (XP) is a methodology of


Agile development, its main author is Kent Beck, who chose some features.
from other methodologies and related them in such a way that each one complemented the
another.

Thus, XP can be defined as a set of steps from various methodologies,


coupled in such a way that they are flexible steps to follow used with use
common, to make a more pleasant and simple development.

This methodology is based on simplicity and has the main objective of


customer satisfaction; to achieve it, four values must be taken into account
fundamentals:

1. Communication: It is very important that there is constant communication.


with the client and within the entire work team, this will depend on that
the development is carried out in a simple, understandable way, and that it
deliver to the client what they need.
Simplicity: In XP it refers to, above all and regardless of what
functionality required by the user in their system must be easy.
the design should be simple and user-friendly, the code should be simple and
understandable, programming only what is necessary and what will be used.
3. Feedback: It is the constant communication between the developer and
the user.

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:

The principle of evidence


6
Analysis and Modeling of Information Systems
Computer Engineering Plan 2010

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

Unified Process (UP, Proceso Unificado).

Software development process based on the Unified Modeling Language


and that is iterative, architecture-centered, and driven by use cases and the
risks. A process that is organized into four phases: initiation, development,
construction and transition, structured around five workflows
fundamentals: requirement gathering, analysis, design, implementation and
tests.

Each of the faces is divided into a series of iterations that offer as


resulted in an increase of the developed product, which adds to or improves the
system functionalities in development.

That is, an 'increase' does not necessarily imply an expansion of it.


system.

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.

Process that is described in terms of a business model, which is at its


is structured based on three essential building blocks
workers, activities and artifacts.

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:

Waterfall model: Linear framework.


Prototyping: Iterative framework.
Incremental: Combination of linear and iterative framework.
Spiral: Combination of linear and iterative framework.
RAD: Rapid Application Development, iterative framework.

Common questions

Powered by AI

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 .

You might also like