0% found this document useful (0 votes)
8 views14 pages

Understanding System Characteristics and Types

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

Understanding System Characteristics and Types

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

Page 2:

• 1.1. Defining A System


• System: an orderly grouping/arrangement of interdependent components/parts/elements
which interact & integrate together to achieve a specific goal/objective.
• Example 1: a computer system: consists of input, processor, output & storage devices;
objective - Produce information.
• Example 2: An organization/company - a system made up of methods, procedures +
policies, people, infrastructure; Objective to provide service/generate profit.
• Subsystem: a system that is part of a larger system (e.g., Registrar of AASTU)
• 1.2. Characteristics of A System
• Key characteristics common to all systems: organization/order, interaction,
interdependence, integration & a central objective.
• 1.2.1. Organization/order:
* Implies structure, order/arrangement of components to help achieve objectives.

Page 3:

• 1.2. Characteristics of A System ...


• Example: 1. A University: hierarchical relationships
• President office => vice presidents offices => directors/deans offices => departments =>
staff, students
• This arrangement portrays:
* a system - subsystem relationship,
* defines authority structure,
* specifies formal flow of communication & chain of command.
• 1.2.2. Interaction: manner in which each component functions.
* E.g., 1. Departments must send course offerings to the Registrar.
* 2. A Comp. Syst: CPU must interact with keyboard to capture input.
• 1.2.3. Interdependence: no subsystem can function in isolation;
* dependent on inputs from other subsystems to perform its tasks.
* E.g.: CPU depends on input from the Keyboard

Page 4:

• 1.2. Characteristics of A System ...


• 1.2.4. Integration:
* Refers to holism of systems.
* Concerned with how a system is tied together.
* More than sharing a physical part or location.
* Successful integration produces a synergistic effect & greater total impact than if each
component works separately.
* "The WHOLE is greater than the SUM of the parts", Aristotle.
• 1.2.5. Central objective:
* The purpose for which the system is in place.
* Example: 1. University's main Objectives: produce trained manpower
* 2. Computer - produce information.

Page 5:

• 1.3. Elements/Components/Parts of A System


• I/Os; Processor(s); Control;
• Feedback; Environment; Boundaries & interfaces
• 1.3.1. Inputs and Outputs
* Outputs: can be goods, services, or info;
* System feeds on input to produce output.
* Output specs determine what & how much input is needed.
* Inputs can be material, human resource, & data.
* Determining output: is a 1st step in specifying the nature, amount, & regularity of
input needed to operate a system.
* Example.: In systems analysis:
* 1st determine users' requirements of a proposed system.

Page 6:

• 1.3. Elements/Components/Parts of A System ...


• 1.3.2. Processor(s):
* Does actual transformation of input into output.
* Modify input totally/partially, depending on output specification
* As output specs change so does processing.
• 1.3.3. Control: Guides system-making decisions to control pattern of activities governing
input, processing, and output.
* Example:
* Management controls inflow, handling & outflow of business activities.
* Computer's control unit:
* controls and manages the execution of instructions;
* Determines sequence of operations, directs flow of data, and ensures proper
coordination among different components.

Page 7:

• 1.3. Elements of A System ...


• 1.3.4. Feedback:
* measures output against a standard in some form of cybernetic procedure that
includes communication & control.
* After output is compared against performance standards,
* Changes may result in input or processing & hence, the output.
* +Ve feedback:
* reinforces system performance; it is routine in nature.
* -Ve feedback:
* generally provides the controller with info for action.
* Example: System Post implementation feedback:
* The user informs analyst about the performance of the new installation - leading to
possible enhancements.

Page 8:

• 1.3. Elements of A System ...


• 1.3.5. Environment: a "supra-system" within which an organization operates.
* External factors impacting system.
* E.g., Suppliers/vendors, competitors, consumers/customers, gov't etc, may provide
constraints &, hence, influence actual business performance.
• 1.3.6. Boundaries & interface:
* Limits that identify its components, processes & interrelationship when it interfaces
with another system.
* Boundaries determine a system's sphere of influence & control.
* Examples:
* 1. Public Relations Office: interacts with entities outside of an organization
* 2. Min. of Foreign Affairs: a nation's legal interface with global community
* 3. A teller system in a com. Bank: is restricted to deposits, withdrawals & related
activities of customers' checking & savings accounts;
* may exclude mortgage foreclosures, other activities.

Page 9:

• 1.4. Types of systems: can have several classifications of systems


• Physical vs Abstract;
• Open vs Closed;
• Natural vs Man - Made" systems,...
• 1.4.1 Physical or abstract systems
* Physical systems: tangible entities with static/dynamic operation.
* Examples: Computer system
* HW - tangible parts like keyboard, Monitor, CPU,...; they are static.
* Data, programs & output: change as user's demand/priority requested changes;
these are dynamic.
* Abstract systems: conceptual /non-physical entities that may be formulas,
representation/model.
* Describe a system that may not exist/concepts in the mind that can be described as
a system.
* E.g., Entertainment system: art, music, poetry, stories, sports, etc.

Page 10:

• 1.4. Types of systems...


• 1.4.2. Open or Closed Systems: based on degree of independence.
* Open system:
* interacts with the environment;
* receives input/delivers outputs to environment.
* E.g.: Organizations & Computers
* Open Sys. Concerns: computer fraud, privacy, security, & ethics in computing
* Closed system: isolated from environmental influence; closed system is rare.
* Characteristics of open systems:
* 1. Input from outside: used for self - adjusting & -regulating
* Proper functioning leads to a steady state/equilibrium.
* Example: In Retail firm:
* Steady state: goods are purchased & sold without under/over stock
× Rise in cost of goods => increase in prices/decrease in operating costs.
* This response/INPUT/ gives the firm its steady state.

Page 11:

• 1.4.2. Open or Closed Systems... characteristics of open systems ...


• 2. Entropy: dynamic systems tend to run down over time, resulting in entropy/loss of
energy.
* Open Ss resist entropy by seeking new inputs/modifying processes to return to a
steady state.
* E.g., no reaction to increase in cost of merchandise makes business unprofitable -
forcing it into bankruptcy – a state of disorganization/entropy.
• 3. Process, output & cycles: Open systems produce useful output and operate in cycles,
following a continuous flow path.
• 4. Differentiation: Open Ss tend to increase function specialization & greater
differentiation of their components;
* E.g., Business: roles of people & machines tend to greater specialization. This may
call for custom-application dev't than acquiring a generic Software.
Page 12:

• 5. Equifinality: goals are achieved through differing courses of action & a variety of paths;
mostly, there is consensus on goals than on paths.
• A Property that allows different means of achieving same thing.
• During system development look at alternative solutions.
• Considering alternatives may call for changing certain user criteria.
• 1.4.3. Natural Vs. Man - Made Systems
• Natural Systems: follow natural Laws & Processes: E.g., Our body
• Man-Made Systems (MMS): created & controlled by humans for specific purpose.
Example: Information Systems (IS).
• Info, by product of an IS, reduces uncertainty about a state/situation.
• E.g.: Info that wind is calm implies that the boat trip will be pleasant [for a
meteorological system]
• An Information System: set of devices, procedures, [software], people,... designed to
produce info & communicate it to users for planning, control & performance. May be manual
or automated.

Page 13:

• 1.5. Software & Software Engineering


• Software: a set of programs to operate computers & related devices.
• The Nature of Software:
* Intangible: Hard to understand development effort
* Easy to reproduce: Major cost is in its development, as manufacturing is the costly
stage in other engineering products.
* Industry is labor-intensive - 'Hard' to automate; yet there's promising progress
* Easy to modify - People can make changes w/o fully understanding it
* Quality problems are hard to notice
* Does not 'wear out' but 'deteriorates' by having its design changed:
* erroneously, or in ways that were not anticipated, thus making it complex
* Conclusions:
* Much software has poor design & is getting worse; we are in a perpetual 'software
crisis'.
* Demand for software is high and rising
* We have to learn to 'engineer' software

Page 14:

• 1.5. Software & Software Engineering...


• Types of Software:
* Custom - meant for a specific customer
* Generic - Sold on open market (e.g., MS Office suite)
* Often called COTS (Commercial Off The Shelf)/Shrink-wrapped
* Embedded - Built into hardware; Hard to change/to reprogram
* DIFFERENCES AMONG THESE SOFTWARE TYPES

| | Custom | Generic | Embedded |


| :---------------------------- | :----- | :------ | :------- |
| Number of copies in use | low | medium | high |
| Total processing power | low | high | medium |
| devoted to running this type of software | | | |
| Worldwide annual development effort | high | medium | low |
Page 15:

• Real time software: control & monitor real world systems


• Must react immediately
• Safety is often a concern
• Data processing software: Used to run businesses
• Accuracy and security of data are key
• Software Engineering:
• The process of solving customers' problems through the systematic development and
evolution of large, high-quality software systems within cost, time and other constraints
• The goal of SW engineering is Solving customers' problems
* Sometimes the solution is to buy, not build
* Adding unnecessary features does not help solve the problem
* Software engineers must communicate effectively to identify & understand the
problem

Page 16:

• Systematic development and evolution


• An engineering process involves applying well understood, organized & disciplined
techniques.
• Formally accepted standards exist: e.g. by the IEEE or ISO
• Most development work is evolutionary
• Large, high quality software systems
• Software engineering techniques are needed because large systems cannot be completely
understood by one person
• Teamwork and co-ordination are required
• Key challenge: Dividing up the work and ensuring that the parts of the system work
properly together
• The end-product that is produced must be of sufficient quality
• Cost, time and other constraints
• Finite resources & hence benefit must outweigh the cost
• Others are competing to do the job cheaper and faster
• Inaccurate estimates of cost and time have caused many project failures

Page 17:

• Software Engineering and the Engineering Profession


• The term Software Engineering was coined in 1968
• People realize that the principles of engineering are key to SW dev't
• Engineering is a licensed profession
* In order to protect the public
• Engineers design artifacts following well accepted practices which involve the
application of science, mathematics and economics
• Ethical practice is also a key principle of the profession
• Software Quality
• Usability - ease of learning and ease of use by users.
• Efficiency - doesn't waste resources such as CPU time and memory
• Reliability - does what it is required to do without failing
• Maintainability - It can be easily changed
• Reusability - parts can be used in other projects; no need for reprogramming

Page 19:

• 1.6. System Development Approaches/Methodologies


• A methodology: is a formalized approach to implementing the SDLC (i.e., it is a list of
steps and deliverables).
• Different systems development methodologies exist;
• Each methodology is unique based on the order & focus it places on each SDLC phase.
• Some methodologies are formal standards used by Govt agencies,
• Others have been developed by consulting firms to sell to clients.
• Many organizations have internal methodologies that have been used over the years, and
they may explain exactly how each phase of the SDLC is to be performed in that company.
• There are many ways to categorize methodologies.
* 1. Focus on business processes, data or both. Methodologies based on this:
Structured, Info Eng & O-O
* 2. Sequencing and Amount of time & effort devoted to the SDLC phases.
Methodologies: Waterfall, RAD, Agile & their varieties,

Page 20:

• 1.6. System Development Approaches/Methodologies


• A. Structured Analysis (SA): a model-driven, PROCESS-centered technique used to
analyze existing system/define requirements for new system or both.
* uses pictures to illustrate the system's component pieces:
* processes & their associated inputs, outputs and files.
* Key modeling tool: Data Flow Diagram (DFD).
* depicts existing & /or proposed processes + their inputs, outputs, & data.
* DFDs show data flow b/n processes & places where data is stored.
* Ultimately these process models serve as:
* blueprints for business processes to be implemented and software to be purchased
or constructed.

Page 21:

• 1.6. System Development Approaches/Methodologies


• B. Information Engineering (IE): emphasizes/focuses on structure of stored data in a
system rather than on processes.
* DATA-CENTERED: emphasizes analysis of KNOWLEDGE /data
* Key tool to model data requirements: Entity R/ship Diagram (ERD);
* Widely used in designing relational databases.
* Though originally, competing approaches, SA & IE are actually complementary:
DFDs model processes & ERDs model data.
• C. Object-Oriented
* Traditional, i.e., Structured & Info Eng., approaches artificially separate DATA from
PROCESSES.
* By contrast, object-oriented methodology attempts to balance the focus between
process & data by incorporating both into one model.
* Thus, OO views systems not asdata & processes but as a collection of objects that
encapsulate data & processes using CLASS DIAGRAMS.

Page 22:

• 1.6. System Development Approaches/Methodologies


• Based on such factors as:
* Sequencing of the SDLC phases and
* Amount of: time & effort devoted to each.
• Methodologies fall into:
* Waterfall & its varieties:
* Parallel development
* V-models
* Rapid Application Development & Varieties
* Iterative/phased/Development
* System & Throwaway prototyping, &
* Rapid Architects Analysis (Reverse Engineering of legacy systems)
* Agile development & varieties
* Extreme Programming (XP)
* Scrum

Page 23:

• 1.6. System Development Approaches/Methodologies


• A. Waterfall Development:
* Project team proceeds sequentially from one phase to the next.
* (Dennis, Wixon & Roth, 2019, p.43)

Page 24:

• 1.6. System Development Approaches/Methodologies


• Waterfall Development...
* Each phases key deliverables are:
* typically voluminous (hundreds of pages) and
* presented to the approval committee & project sponsor for approval as the project
moves from phase to phase.
* Once work produced in a phase is approved, the phase ends & next phase begins.
* Progresses from phase to phase moves forward in same manner as a waterfall.
* Though possible to go backward through the phases (e.g., from design back to
analysis), it is quite difficult;
* this requires major change, leading to increase in cost & time delay
* Imagine trying to swim upstream in a waterfall.

Page 25:

• 1.6. System Development Approaches/Methodologies


• Advantages:
* requirements are identified before programming begins, and
* requirement changes are limited as project progresses.
• Disadvantages:
* must complete design before programming begins
* Long time elapses b/n:
* system proposal (analysis phase) &
* system delivery;
* Users may forget original purpose of the system
* testing may be treated as an afterthought in implementation phase.
* Large documentation leads to:
* overlooked requirements;
* a poor communication mechanism

Page 26:

• 1.6. System Development Approaches/Methodologies


• Waterfall Development... disadvantages...
* Expensive post-implementation programming:
* due to missed important requirement.
* Can't cope up with today's dynamic business environments:
* deliverables of analysis may need considerable rework to match the changing env't
when it is implemented.
* This rework requires going back to the initial phase & making needed changes
through each of the subsequent phases in turn.
• Major Variants of waterfall:
* Parallel Development (PD) &
* V-Model

Page 27:

• 1.6. System Development Approaches/Methodologies


• A1. Parallel Dev't (PD): ...
* Parallel Dev't (Dennis, Wixon & Roth, 2019, p.49)

Page 28:

• 1.6. System Development Approaches/Methodologies


• A1. Parallel Dev't (PD): .... Evolved to address lengthy time of waterfall
* After analysis phase, a general design for whole system is created.
* Then project is divided into a series of subprojects that can be designed &
implemented in parallel.
* Once all subprojects are complete, there is a final integration of the separate pieces,
and the system is delivered.
* Advantage: Reduces time required to deliver a system, so changes in the business
env't are less likely to produce the need for rework.
* Disadvantage: still suffers from problems caused by voluminous deliverables,
* Adds a new problem (i.e., integration problem)
* if subprojects are not completely independent, design decisions in one subproject
may affect another, & at the end of project, integrating subprojects may be quite challenging.

Page 29:

• 1.6. System Development Approaches/Methodologies


• A2. V-model:
* pays more explicit attention to testing (see fig, next slide)
* Dev't process proceeds down the left-hand slope of the V,
* defining requirements & designing system components.
* At the base of the V, the code is written.
* On the upward-sloping right side of the model,
* testing of components,
* integration testing, and,
* finally, acceptance testing are performed.
* A key concept:
* Requirements are specified & components designed,
* testing for those elements is also defined; each level of testing is linked to a part of
analysis/design phase;

Page 30:

• 1.6. System Analysis & Modeling Approaches/Methodologies


• Benefits:
* Simple, straightforward &
* Ensures to maximize test effectiveness.
* improves overall system quality through earlier focus on test plan dev't & conducting
tests;
* involves quality assurance expertise to increase overall quality of system design.
• Disadvantage:
* still suffers from rigidity of the waterfall dev't process;
* not always appropriate for the dynamic nature of the business environment.

Page 32:

• 1.6. System Development Approaches/Methodologies


• B. Rapid Application Development (RAD): A collection of methodologies
* Emerged in response to the weaknesses of waterfall dev't & its variations.
* Incorporates special techniques & computer tools to speed up:
* the analysis, design, & implementation phases
* so that portion of system developed quickly handed over to users for evaluation &
feedback.
* Incorporates:
* CASE (Computer Assisted Software Eng) tools,
* Joint Application Development (JAD) sessions,
* 4th generation/visual programming languages (e.g., Visual [Link]),
* Code generators may all play a role in RAD.

Page 33:

• 1.6. System Development Approaches/Methodologies


• Advantage:
* can improve the speed & quality of systems development,.
• Disadvantage:
* As systems are developed more quickly & users gain a better understanding of IT,
* user expectations may dramatically increase &
* May Expand system requirements
* Causing scope creep or feature creep.
• RAD may be conducted in a variety of ways:
* Iterative/phased,
* System & Throw away prototyping
* Rapid Architect Analysis (reverse engineering)

Page 34:

• 1.6. System Development Approaches/Methodologies


• B1. Iterative/Phased/development (ID):
* Breaks overall project into a series of versions, developed sequentially.
* Most important requirements are bundled into 1st version of system.
* 1st version is developed & implemented quickly by a mini-waterfall process,
* Users use 1st version & provide valuable feedback to be incorporated into the next
version
* Advantage:
* Quick 1st version delivery to users, adds business value early
* Additional requirements identified & incorporated into subsequent versions, based
on actual system use of 1st version.
* Disadvantage:
* users begin to work early with an intentionally incomplete system;
* users must be patient with repeated release of new system versions.

Page 36:

• 1.6. System Development Approaches/Methodologies


• B2. System prototyping (SP):
* Perform analysis, design, & implementation concurrently & repeatedly
* Quickly develop a simplified version of proposed system &
* Gives it to the users for evaluation & feedback.
* Prototype: "quick & dirty" version of system & provides minimal features.
* Following reaction & comments from users:
* developers reanalyze, redesign, & re-implement a 2nd prototype.
* This cycle continues until the analysts, users, & sponsors agree on the prototype's
functionality.
* Advantage:
* quickly provides a system for users to evaluate and reassures users that progress is
being made;
* very useful when users have difficulty in expressing requirements

Page 37:

• 1.6. System Development Approaches/Methodologies


• (Dennis, Wixon & Roth, 2019, p.46)
• Disadvantage:
* lack of careful analysis before design & implementation decisions.
* Sys. prototypes may have some fundamental design limitations due to:
* Inadequate understanding of true requirements early in the project.

Page 38:

• 1.6. System Development Approaches/Methodologies


• B3. Throwaway prototyping (TP):
* Uses prototypes primarily to explore design alternatives rather than as actual new
system
* not intended to be a working system:
* meant only enable users to understand issues under consideration.
* E.g.: Online order Entry System
* Suppose users are not completely clear on how an order entry system should work.
* The analyst team might build a series of HTML pages to be viewed on a Web
browser to help users visualize such a system;
* a series of mock-up screens appear to be a system, but really do nothing.

Page 39:

• 1.6. System Development Approaches/Methodologies


• B3. Throwaway prototyping (TP): ....
* May require several design prototypes during analysis & design;
* Each prototype is used to minimize risk associated with system by:
* Confirming that important issues are understood before the real system is built.
* Once issues are resolved, the project moves into design and implementation.
* At this point, the design prototypes are thrown away:
* which is an important difference b/n:
* this approach &
* system prototyping (the prototypes evolve into the final system).
* Advantage: refine key issues before a system is built.

Page 40:

• 1.6. System Development Approaches/Methodologies


• Disadvantage: may take longer to deliver final system compared with system
prototyping (because the prototypes do not become the final system), but the approach usually
produces more stable and reliable systems.
• (Dennis, Wixon & Roth, 2019, p.47)

Page 41:

• 1.6. System Development Approaches/Methodologies


• B4. Rapid Architected Analysis:
* Attempts to derive system models from existing systems or discovery prototypes.
* Made possible by reverse-engineering technology including CASE tools.
* Reverse Engineering tools generate system models from existing software
applications (e.g., legacy systems) or system prototypes.
* Resulting models are then edited & improved by analysts & user to provide a blue
print for a new & improved system.

Page 42:

• 1.6. System Development Approaches/Methodologies


• C. Agile Development:
* Programming-centric methodologies - focus on streamlining the SDLC.
* All are based on the agile manifesto & a set of twelve principles.
* Have few rules & practices, all of which are fairly easy to follow.
* Virtually all agile methodologies are used in along with O-O technologies.
* Manifesto's emphasis -
* Focus on addressing:
* Working conditions of developers to deliver working SW to customers,
* Changing requirements
* Instead of detailed systems Development of:
* processes, tools, documentation,
* legal contracts, & detailed plans.

Page 43:

• 1.6. System Development Approaches/Methodologies


• Agile focuses on: ...
* Simple, iterative application dev't:
* Every iteration is a complete SW project - planning, analysis, design, coding,
testing, & documentation.
* Short Cycles (1-4 weeks), &
* Team focus on adapting to current business environment.
* Eliminating much of modeling & documentation:
* Prefer face-to-face communication
* Agile Manifesto ([Link]
* Agile Manifest values:
* Interactions & individuals over processes and tools
* Working software over comprehensive documentation
* Customer Collaboration over contract negotiation
* Responding to change over following a plan

Page 44:

• 1.6. System Development Approaches/Methodologies


• Agile Manifesto ....
* The 12 Principles of Agile
* 1. Priority is Early & continuous delivery of valuable SW to satisfy customer
* 2. Welcome changing requirements, even late in development
* 3. Deliver working SW frequently, in couple of weeks/months
* 4. Customers & developers must work together daily throughout project.
* 5. Build projects around motivated individuals.
* Give them the env't & support needed and
* trust them to get the job done
* 6. Most efficient & effective method of conveying info to & within a development
team is face-to-face conversation.

Page 45:

• 1.6. System Development Approaches/Methodologies


• Agile Development...
* 7. Working software is the primary measure of progress
* 8. Agile processes promote sustainable dev't.
* The sponsors, developers, & users should be able to maintain a constant pace
indefinitely.
* 9. Continuous attention to technical excellence & good design enhances agility
* 10. Simplicity - art of maximizing amount of work not done - is essential
* 11. The best architecture, requirements, and designs emerge from self-organizing
teams
* 12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.

Page 46:

• 1.6. System Development Approaches/Methodologies


• Agile Development: ... Criticisms:
* 1. Today much of actual IS dev't is off-shored, outsourced, and/or subcontracted.
* Hence, Co-location of dev't team becomes very unrealistic assumption.
* 2. If not carefully managed, it can devolve into a prototyping approach - an env't
where programmers attempt to hack together solutions.
* 3. Lack of documentation: affects audit-ability of system.
* W/O sufficient documentation, neither system nor dev't process can be assured.
* 4. Usability in delivering large mission-critical systems is difficult.

Page 47:

• 1.6. System Development Approaches/Methodologies


• Agile Development: ... Strengths
* However, Agile approaches have the potential to:
* Address the application backlog &
* provide timely solutions to many business problems
* Hence, agile dev't should be considered in certain circumstances.
* Furthermore, attending to underlying purpose of agile manifesto & twelve agile
principles are very useful in:
* object-oriented development.
* Popular agile development methodologies:
* Extreme programming (XP) and
* Scrum.

Page 48:

• 1.6. System Development Approaches/Methodologies


• C1. Xrammers;
* Teams are kept small.
* Developers must:
* 1. provide rapid feedback to end users continually.
* 2. follow KISS (Keep it Simple Stupid) principle.
* 3. Have the courage to make incremental changes to grow the system,
* they must not only accept change but also embrace change.
* 4. have a quality-first mentality. XP also supports team members in developing
their own skills.

Page 49:

• 1.6. System Development Approaches/Methodologies


* Three of key principles that XP uses to create successful systems:
* continuous testing,
* simple coding performed by pairs of developers, and
* close interactions with end users to build systems very quickly.
* Testing and efficient coding practices are the core of XP.
* Code is tested each day & is placed into an integrative testing environment.
* If bugs exist, code is backed out until it is completely free of errors.
* XP relies heavily on refactoring:
* which is a disciplined way to restructure code to keep it simple.

Page 50:

• 1.6. System Development Approaches/Methodologies


* The process of an XP project:
* 1st, Begins with user stories - that describe what the system needs to do.
* 2nd, Then, programmers code & test in small, simple modules
* Users are required to be onsite to clear up questions/issues as they arise.
* Uses Standards to minimize confusion; XP teams use a common set of names,
descriptions, & coding practices
* XP projects deliver results
* sooner than even RAD approaches, &
* They rarely get bogged down in gathering requirements.

Page 51:

• 1.6. System Development Approaches/Methodologies


* Strengths of XP:
* Improved Programmer-stakeholder communication
* Encourages continuous testing of the evolving system.
* Allows requirements to evolve as the stakeholders understand the potential the
technology has in providing a solution to their problem.
* Estimation is task driven & is performed by the programmer who will implement the
solution.
* Because all programming is done in pairs, a shared responsibility for each software
component develops among the programmers.
* Finally, the quality of the final product increases during each iteration.
* Works well in small projects with highly motivated, cohesive, stable, & experienced
teams.
* criticism on XP:
* Success becomes doubtful when project is not small or teams are not jelled.

Page 52:
• 1.6. System Development Approaches/Methodologies
* Bringing outside contractors into existing team poses serious problems. => outsiders
jelling with insiders might be too optimistic.
* Requires great discipline; otherwise, projects become unfocused & chaotic.
* Recommended only for small groups of developers (<=10);
* Not advised for mission-critical applications:

Common questions

Powered by AI

Physical systems are tangible with static or dynamic operations, such as a computer system composed of tangible parts like a keyboard and CPU. In contrast, abstract systems are conceptual or non-physical, such as an entertainment system comprising art, music, and poetry. These examples highlight the distinction between tangible components and conceptual frameworks .

The integration of subsystems poses challenges such as potential conflicts arising from independent subproject design decisions that may affect others, leading to integration problems. A potential solution includes implementing a final integration phase where separate subproject components are combined and tested to ensure they function cohesively. Adopting agile methodologies, which emphasize flexibility and iterative testing, can further alleviate these issues by allowing for adjustments during development .

In open systems, differentiation leads to increased specialization and differentiation of components, which can enhance functionality but also require more tailored solutions. Entropy, or the tendency towards disorganization, challenges sustainability unless the system can introduce new inputs or modify existing processes to return to equilibrium. This adaptability is crucial for maintaining operation efficiency and avoiding decline into chaos or inefficiency, hence influencing their sustainability .

Agile Development focuses on iterative and flexible processes, suitable for environments where requirements frequently change. It values direct communication, adaptability, and simple iterative development, which allows constant feedback and adjustment. The Waterfall approach, meanwhile, follows a linear, structured process where each stage must be completed before moving on, making it less adaptable to changes once the project has progressed past a given phase. Agile development inherently integrates changes throughout the process, whereas Waterfall typically addresses changes through a separate review phase .

RAD significantly impacts user expectations and project scope by accelerating development timelines, allowing continuous user feedback and involvement. This approach can increase user understanding of IT capabilities, potentially leading to expanded project requirements or scope creep. Advantages include faster development and enhanced system quality through iterative prototyping. However, the rapid pace can lead to unrealistic user expectations and challenges in managing increased requirements .

Interdependence within a system implies that no subsystem can operate in isolation; each one relies on inputs from other subsystems to perform its tasks. For example, within a computer system, the Central Processing Unit (CPU) depends on input from the keyboard to begin processing tasks .

System boundaries define the limits for components, processes, and interactions with other systems; they establish a system's sphere of influence and control. Properly defined interfaces allow for effective communication and integration with external systems, supporting functionality by ensuring that essential interactions occur seamlessly. For instance, a public relations office must interface efficiently with external entities to maintain an organization's image, reflecting controlled exposure yet comprehensive accessibility .

Equifinality is the property that allows an open system to achieve its goals through different paths or methods. This implies that consensus on objectives may be easier than agreement on the specific processes to reach them. In system development, this concept encourages exploring alternative solutions and adapting user criteria as necessary, allowing for flexibility and customization during the development process .

The control component guides system decision-making, managing the pattern of activities concerning input, processing, and output. In human organizations, management typically handles control by guiding business activities flow. In a computer system, the control unit directs the sequence of operations and ensures coordination between components, influencing the flow of data and proper execution of instructions .

Feedback mechanisms are crucial for comparing system output against a standard or target. Positive feedback strengthens system performance and is typically routine, while negative feedback provides information for corrective action to adjust inputs or processing to achieve better alignment with goals. For instance, after implementing a new system, user feedback might highlight performance issues that require modifications to enhance functionality .

You might also like