0% found this document useful (0 votes)
34 views15 pages

P Worthington DCS903-5

Uploaded by

pworthin
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

Topics covered

  • Verification and Validation,
  • Testing Methodologies,
  • Functional Decomposition,
  • Registers,
  • Graphical User Interface,
  • Cache Memory,
  • Inventory Management Systems,
  • System Software,
  • CPU Architecture,
  • A/B Testing
0% found this document useful (0 votes)
34 views15 pages

P Worthington DCS903-5

Uploaded by

pworthin
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

Topics covered

  • Verification and Validation,
  • Testing Methodologies,
  • Functional Decomposition,
  • Registers,
  • Graphical User Interface,
  • Cache Memory,
  • Inventory Management Systems,
  • System Software,
  • CPU Architecture,
  • A/B Testing

1

Module 4: Software Engineering and Risk Mitigation

Prince Worthington

School of Business and Technology, Aspen University

DCS 903: System Metrics & Risk Management

Dr. Richard Wells

October 16, 2023


2

Decision Analysis and Support

The systems engineering method applies to the advanced development phase in a similar set of

four steps as it does to the preceding concept definition phase. For each step in the method,

compare the activities in the two phases with one another, stating in your own words how they

are similar and how they are different.

The methodology of systems engineering serves as a structured blueprint that navigates

engineers through the intricate maze of system creation. This blueprint is versatile, being

applicable in both the initial conceptualization phase as well as the advanced development stage.

Although the four primary steps remain constant across these stages, the tasks within each step

vary and are key to the successful completion of any project.

Step 1: Analyzing Requirements

During the initial conceptualization phase, the primary focus is on grasping the

complexity of the problem and pinpointing what the stakeholders actually need (Cronholm &

Goldkuhl, 2011). Engineers collect data to outline the system's scope and limitations. Conversely,

in the advanced development stage, the analysis of requirements becomes more nuanced.

Engineers, already equipped with a fundamental understanding of the system, now progress into

the essential details and performance indicators (Jones & Maiden, 2005).
3

Step 2: Functional Decomposition and Allocation

In the conceptualization phase, the task is to dissect high-level functions into smaller,

manageable tasks and distribute them across various system elements (Schmidt, 2013). As the

project moves into the advanced development stage, the emphasis shifts towards fine-tuning these

functions and ensuring their smooth integration. Engineers might utilize advanced algorithms and

simulations to corroborate the functional structure.

Step 3: The Art of Synthesis

In the conceptual stage, synthesis is about crafting initial designs and models. Engineers

weigh multiple design options against feasibility and stakeholder needs. However, in the

advanced development stage, the focus is on the actual construction and rigorous testing of

prototypes. The designs transition from being theoretical constructs to physical entities that are

subjected to stringent tests to confirm they meet the set criteria (OSTI, 1971).

Step 4: Verification and Validation

In the conceptual phase, verification and validation are largely theoretical exercises.

Engineers employ mathematical models and simulations to confirm the system's compliance with

the requirements (Cronholm & Goldkuhl, 2011). As the project advances into the development

stage, these processes become handled more directly. Engineers execute real-world tests and

gather empirical data to ensure the system functions as designed (Ledin, 2001)
4

In the development of a major upgrade to a terminal air traffic control system, what would you

except to be three significant risks and what systems engineering approaches would you

recommend to mitigate each of these risks?

In the sphere of air traffic control systems, the transition to a major new software version

is fraught with complexities and high stakes, where even a minor glitch could culminate in

disastrous consequences. This discourse aims to elucidate three salient risks and the systems

engineering methodologies employed to mitigate them.

The first risk of paramount importance is software incompatibility, which holds the

potential to induce system crashes or erroneous data representation. To mitigate this risk, systems

engineering methodologies advocate for rigorous compatibility testing and phased

implementations. Utilization of virtual environments for simulating real-world conditions is

instrumental in identifying compatibility issues prior to full-scale deployment (Bougaa et el,

2016)

The second risk factor is human error, often magnified by unfamiliarity with the newly

implemented system. Comprehensive training programs are the cornerstone for mitigating this

risk. These programs should amalgamate theoretical instruction with practical exercises,

potentially leveraging Virtual Reality simulations to replicate real-world scenarios (Button,

Seifert, O’Donovan, & Davids, 2013).

The third and equally critical risk is the introduction of new security vulnerabilities.

Given the critical nature of air traffic control systems, they are susceptible to cyber-attacks.

Systems engineering methodologies to counteract this involve rigorous penetration testing and
5

the institution of multi-faceted security protocols. The deployment of intrusion detection systems

and regular security audits are non-negotiable components of this strategy (Yunis, Hughes, &

Roge, 2008).
6

Graphical user interface software is generally difficult to design and test. Explain why this is

true, giving at least three situations to illustrate your points. What types of development tests

would you propose for each situation?

The design and testing of Graphical User Interface (GUI) software are fraught with

complexities that are often underestimated, yet pivotal to the development process (Singhera et

al., 2011). One of the most formidable challenges lies in the heterogeneity of user expectations

and cognitive models. This variability in User Experience (UX) necessitates the utilization of A/B

testing paradigms to evaluate different interface layouts and elements (Anon, 2022). By

implementing heatmaps to capture user interaction patterns, data-driven design adjustments can

be facilitated, thereby aiming to create a universally intuitive interface (Singhera et al., 2011).

Adding another layer of complexity is the issue of platform inconsistency. The

multiplicity of operating systems, each with its unique design guidelines and idiosyncrasies,

complicates the task of achieving a consistent user interface across platforms (Unadkat, 2023). To

navigate this labyrinthine challenge, cross-platform testing strategies are employed (Singhera et

al., 2011). Virtual machines or containerization technologies are utilized to simulate diverse

operating environments, ensuring that the GUI remains consistent and functional across multiple

platforms. It is worth noting that Linux, in particular, has demonstrated superior computational

capabilities, making it an essential inclusion in the testing matrix (Singhera et al., 2011).

Yet another intricate challenge is that of dynamic content and scalability. The interface

must be designed to adapt to a range of screen sizes, resolutions, and dynamically loaded content.

To address this, stress tests are conducted to evaluate the GUI's adaptability to varying screen

sizes and resolutions (Ganguly, 2023). Load tests are also performed to assess how the interface
7

copes with dynamically loaded content, thereby ensuring that the system remains robust under

different conditions (Singhera et al., 2011).

In conclusion, the complexities inherent in GUI design and testing necessitate a multi-

pronged approach for effective problem-solving (Ganguly, 2023). By implementing rigorous

testing methodologies tailored to each identified situation, the risks can be significantly mitigated

(Singhera et al., 2011). This, in turn, enhances the reliability and performance of the GUI

software, thereby contributing to optimal user satisfaction and system functionality.


8

Look up the principle subcomponents of the data processor (CPU) of a personal computer. Draw

a block diagram of the subcomponents and their interconnections. Describe in your own words

the functions of each subcomponent.

Arithmetiс Logiс Unit (ALU): The ALU serves аs the сomрutаtionаl nexus within the CPU

аrсhiteсture, tаskeԁ with exeсuting а рlethorа of аrithmetiс аnԁ logiсаl oрerаtions. The рrimаry

objeсtive of this unit is to fасilitаte ԁаtа mаniрulаtion аnԁ decision-making algorithms, thereby

contributing to the CPU's overall сomрutаtionаl effiсienсy.

Control Unit: Acting аs the orсhestrаtor of the CPU's operations, the Control Unit is responsible

for the interpretation аnԁ subsequent transformation of instructions extrасteԁ from the memory. It

generates а series of signals thаt асtivаte vаrious components within the CPU аnԁ рeriрherаl

ԁeviсes, thereby ensuring the effiсient exeсution of tаsks аnԁ oрtimizing the CPU's рerformаnсe.
9

Cасhe Memory: This high-sрeeԁ volаtile storаge сomрonent within the CPU serves аs а

reрository for frequently ассesseԁ ԁаtа from the mаin memory. By reԁuсing ԁаtа ассess time, the

Cасhe Memory enhаnсes the sрeeԁ аnԁ effiсienсy of the CPU, thereby сontributing to its overаll

рerformаnсe metriсs.

Registers: These аre smаll, rарiԁ-ассess storаge loсаtions situаteԁ within the CPU. Registers holԁ

ԁаtа аnԁ instruсtions temрorаrily ԁuring the exeсution рhаse, thereby fасilitаting immeԁiаte ԁаtа

ассess аnԁ mаniрulаtion, whiсh is сruсiаl for the CPU's oрerаtionаl effiсienсy.

Floаting-Point Unit (FPU): Sрeсiаlizing in floаting-рoint аrithmetiс oрerаtions, the FPU is

раrtiсulаrly instrumentаl in аррliсаtions thаt neсessitаte high-рreсision саlсulаtions. Whether it's

sсientifiс сomрuting, imаge рroсessing, or finаnсiаl moԁeling, the FPU's сараbilities аre integrаl

to the CPU's versаtility in hаnԁling а wiԁe rаnge of сomрutаtionаl tаsks.

Eасh of these subсomрonents рlаys а рivotаl role in the CPU's funсtionаlity аnԁ сontributes to its

сomрutаtionаl рrowess. Their synergistiс oрerаtion ensures thаt the CPU is сараble of exeсuting

а wiԁe аrrаy of tаsks, rаnging from ruԁimentаry аrithmetiс саlсulаtions to сomрlex аlgorithms,

thereby soliԁifying its role аs the сomрutаtionаl engine of а рersonаl сomрuter.


10

Extend the examples of the three types of software-dominated systems shown in Table 11.1 by

listing two more examples of each type. Briefly indicate why you placed each example into the

selected category.

As we have it, the three major categories are system software, embedded software, and

application software. To discuss further two examples of each category, I have provided the

following:

System Software

Operating System (e.g., Linux)

Rаtionаle: The oрerаting system serves аs the аrсhetyраl system softwаre, funсtioning аs the

intermeԁiаry between сomрuter hаrԁwаre аnԁ the enԁ-user. It is resрonsible for the аlloсаtion of

hаrԁwаre resourсes аnԁ the рrovision of аn аrrаy of serviсes to fасilitаte the exeсution of

сomрuter рrogrаms. Linux, given its oрen-sourсe nаture аnԁ extensive сustomizаbility, stаnԁs аs

аn exemрlаry instance.

Device Drivers (e.g., Graphics Card Drivers)

Rationale: Device drivers constitute specialized software engineered to govern specific hardware

components interfaced with a computer system. These drivers facilitate the communication

between the operating system and the hardware, obviating the need for the OS to comprehend

intricate hardware specifications.


11

Embedded Software

Firmware in Routers

Rationale: This category of software is intrinsically integrated into the hardware architecture of

network routers. It is tasked with the regulation of data packet routing and network traffic

management, among other functionalities. The software is highly specialized for the device in

question and lacks the capability to operate independently.

Automotive Control Systems (e.g., Anti-lock Braking System)

Rationale: This embedded software is intricately woven into the electronic framework of

automobiles to govern functionalities such as braking and fuel injection. The software is not only

specialized but also operates in real-time, making it indispensable for the device's functionality.

Application Software

Microsoft Word

Rationale: Microsoft Word is a quintessential text processing application that operates atop an

operating system. It is engineered to cater to end-users with the primary objective of facilitating

tasks such as document editing.


12

Adobe Photoshop

Rationale: Adobe Photoshop serves as another paradigmatic instance of application software,

offering a comprehensive suite of features for image manipulation. Similar to Microsoft Word, it

functions atop an operating system and is tailored for a specific set of tasks.
13

Using the example of an automated supermarket grocery inventory and management system

draw the system context diagram.

(Please see attached file—my systems design software I have was not particularly designed to be

displayed on word processing software via screenshots)


14

References

6 Common UI Problems & Mistakes (And How to Solve Them). (2022, October). Retrieved from

[Link] website: [Link]

Bougaa, M., Bornhofen, S., Kadima, H., & Rivière, A. (2016). 3D Interaction in Virtual

Environments for Systems Engineering. International Journal of Computer Theory and

Engineering, 8(6), 458–464. [Link]

Button, C., Seifert, L., O’Donovan, D., & Davids, K. (2013). Variability in neurobiological

systems. Complex Systems in Sports, (1st ed.). [Link]

Cronholm, S., & Göran Guldkuhl. (2011). Communication Analysis as Perspective and Method

for Requirements Engineering. Requirements Engineering for Sociotechnical Systems,

340–358. [Link]

Ganguly, S. (2023, February 15). What is GUI Testing? (Types & Best Practices). Retrieved

October 16, 2023, from BrowserStack website: [Link]

testing

Jones, S., & Maiden, N. (2005). RESCUE. Requirements Engineering for Sociotechnical

Systems, 245–265. [Link]

Ledin, J. (2001). Verification, Validation, and Accreditation. NCSU Libraries Repository (North

Carolina State University Libraries).

Nuclear shuttle systems definition study. Phase III. Volume II. Concept and feasibility analysis.

Part B. Baseline system definition. Final report. (1971). OSTI OAI (U.S. Department of

Energy Office of Scientific and Technical Information). [Link]

Schmidt, R. F. (2013). Functional Analysis and Allocation Practice. Elsevier EBooks, 185–201.

[Link]
15

Unadkat, J. (2023, January 12). 5 Common Bugs Faced in UI Testing. Retrieved from

BrowserStack website: [Link]

Yunis, M., Hughes, J., & Roge, J. (2008). Real Security in Virtual Systems: A proposed Model

For A Comprehensive Approach to Securing Virtualized Environments. Issues in

Information Systems. [Link]

Zafar Singhera, Horowitz, E., & Shah, A. (2009). A Graphical User Interface (GUI) Testing

Methodology. Software Applications: Concepts, Methodologies, Tools, and Applications,

3037–3054. [Link]

Common questions

Powered by AI

The ALU executes arithmetic and logical operations, facilitating data manipulation and decision-making . The Control Unit orchestrates CPU operations, interpreting instructions from memory and generating signals to activate CPU components . Cache Memory serves as a high-speed storage repository for frequently accessed data, enhancing CPU efficiency . Registers are rapid-access storage locations for data and instructions during execution, facilitating immediate access .

System software, like operating systems and device drivers, functions as an intermediary, facilitating complex interactions between hardware and application software to optimize computer performance. It operates independently over multiple hardware systems. Embedded software, such as firmware in routers, is highly specialized and integrated directly into specific hardware, performing dedicated tasks and lacking independent operation capability outside its designed context .

Operating Systems and Device Drivers are categorized as system software because they manage and facilitate interaction between computer hardware and user programs. An OS like Linux allocates resources and services, while drivers enable hardware communication . Firmware in Routers and Automotive Control Systems are embedded software, as they are integral to specific hardware operations, with no independent operation capability, like routing data or controlling vehicular functions .

Systems engineering addresses software incompatibility through rigorous compatibility testing and phased implementations, often using virtual environments for simulations . Human error is mitigated by comprehensive training programs that integrate theoretical and practical exercises, including Virtual Reality simulations . To counter security vulnerabilities, the methodologies involve rigorous penetration testing and the implementation of multi-faceted security protocols, including intrusion detection systems and regular security audits .

Platform inconsistency challenges arise due to different OS design guidelines, making it difficult to maintain a consistent interface. These challenges can be mitigated through cross-platform testing strategies using virtual machines or containerization techniques to simulate diverse environments, ensuring GUI consistency and functionality across platforms .

In the conceptualization phase, requirement analysis focuses on understanding the problem and defining stakeholder needs by collecting data to outline the system's scope and limitations. In contrast, during the advanced development stage, this analysis becomes more detailed as engineers use their foundational understanding to dive into essential details and performance indicators .

In the conceptual phase, failing to perform thorough verification and validation can lead to foundational errors in design and requirements that propagate through development, as these exercises largely utilize mathematical models and simulations for compliance checks. Meanwhile, in the advanced development stage, lack of real-world testing and empirical data collection can result in systems that don't function as designed when deployed .

Dynamic content and scalability in GUI software should be addressed with stress tests to evaluate GUI adaptability across varying screen sizes and resolutions, alongside load tests to assess performance under dynamic content conditions. These methodologies ensure the system remains robust and maintains user interface consistency despite changes in content and display parameters .

In the conceptual design phase, synthesis involves crafting initial designs and models, evaluating multiple options against feasibility and stakeholder needs. During physical testing in the advanced development stage, the focus shifts to constructing and rigorously testing prototypes, transitioning designs from theoretical to physical entities to ensure they meet set criteria .

GUI software design and testing are complex due to user expectation variability, platform inconsistency, and dynamic content scalability. A/B testing and heatmaps help address user variability . Cross-platform testing using virtual machines ensures consistency across different operating systems . Stress and load tests evaluate adaptability and robustness for dynamic content and scalability .

You might also like