System Development And Design Activities Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

During the system development, we first do the system analysis and transform it into system design. In system design, developers have to define design goals and have to decompose the system into smaller subsystem. Until all the design goals are not satisfied, developers have to make small changes to improve efficiency.

-[BRUEGGE AND DUTOIT, 2ND Edition]

System Design Activities that address the design goals are stated below:

Mapping subsystem into hardware/software platform

Designing of a persistent data management

Access control specification

Control flow of subsystem

Boundary condition handling

Reviewing of system design model

To answer this question, I take the example of Real Estate Property Finding.

Analysis Model for Property Finding

A user can plan to find property on website of Real Estate through Find a Property.

User defines its criteria and save that on server for later retrieval.

User enters location and property type and website gives lists of property information from Find a Property.

Selecting a hardware configuration and a platform

System can run on one or more computers that needs high performance and related to each others. The allocation of subsystem to computers and structure for communication between subsystems are defined properly.

During system design, Hardware mapping is done because it effect on system performance and complexity. In this stage, virtual machine is also defined that includes operating system and software component such as database management system or communication package. Virtual machine selection identifies constrained by client and cost considerations.

-[BRUEGGE AND DUTOIT, 2ND Edition]

In Find a Property, the hardware allocation has two different nodes: the :OnBoardComputer and :WebServer that shown in below figure. There is Windows Machine as virtual machine for :WebServer and web browsers are Internet Explorer and Chrome as the virtual machine for :OnBoardComputer.

:WebServer

PropertyCriteria Subsystem

Figure: Allocation of Find a Property subsystems to hardware

Allocating objects and subsystems to nodes

After hardware configuration and virtual machine selection, objects and subsystems are assigned to nodes. This often identifies new objects and subsystems for transforming data among the nodes.

-[BRUEGGE AND DUTOIT, 2ND Edition]

In Find a Property system, both subsystems share the objects Sale, Rent, Commercial/Investment, PropertyType. To support communication there is new subsystem defined :CommunicationSubsystem.

Designing of a persistent data management

To store the data need database management system. It implies where and how the data will be stored in the system that effects the system decomposition. The DBMS selection involved overall control strategy and concurrency management.

-[BRUEGGE AND DUTOIT, 2ND Edition]

In Find a Property data stores like:

PropertyCriteria Subsystem

PropertyListing Subsystem

CommunicationSubsystem

PropertyFileStore Subsystem

PropertyDBStore Subsystem

PropertyFileStoreSubSystem - Responsible for store property list in files on OnBoard computer. It supports fast storage and loading of all property listing.

PropertyDBStoreSubSystem - Responsible for storing property by their location and rate in database for the PropertyCriteriaSubSystem. It supports multiple users and agents to find property and handles complex queries.

Identifying persistent objects

It represents which data has to be stored.

In Find a Property- Property type, location, price must be stored.

Selecting a Storage Management system

After identified persistent objects, it is described how it stored.

In Flat Files, Relational database, Object-Orinted database, Object-Relational database.

Access control specification

In Multi user system, there is more than one users of the system such that the requirements of users are different. In Analysis, the use cases identified with different actors who interact with system. In system design the object model identified by determining which objects are shared among actors. To authenticate user and data, different techniques can be used for security purpose. In Find a Property, CommunicationSubSystem, PropertyCriteria, PropertyFinder are need aunthentication and encrypted data.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Control flow of subsystem

During system design, control flow of system can be defined. It is a sequence of actions which perform in system and includes which operation take place after one executed with which order.

The Control flow mechanisms are:

Procedure-driven control- operations wait for input from actor.

Event-driven control- A main loop waits for an external event.

Threads- concurrency variation of procedure-driven control. It creates number of threads which respond to different event.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Boundary condition handling

It identifies how the system work such as how system start, initialized and shutdown. It also defines some failures like data corruption and network suspension. It is identify by new use cases that is boundary use cases.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Reviewing of system design model

System analysis can be modeled into system design that states system design model is Correct, Complete when all requirements are fulfilled, and Consistent when it doesn't contain any contradictions, Realistic when proper techniques can be implemented, Readable for unknown to system design.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Question:1 :

[B]

Explain the differences between the terms coupling and cohesion with respect to software engineering. What forms of coupling and cohesion are desirable and why?

Answer:

Coupling is the number of dependencies between two subsystems. If two subsystems are loosely coupled than they are relatively independent so changes in one subsystem will react little change in other. While subsystems are strongly coupled than changes in one have more impact on other.

-[BRUEGGE AND DUTOIT, 2ND Edition]

For Example, There is two lines of code A and B, they are coupled when B must change behavior only A changed.

Loosely coupled subsystems are more preferable because it reduces the errors or changes one haven't more effect in other subsystems.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Cohesion is the number of dependencies within a subsystem. If subsystems have more objects that are related to each other and do the similar tasks that is cohesion is high. If objects are unrelated than cohesion is low. For Example, there are cohesive when changes to A allow B to change so that both add new value.

Highly cohesion is more desirable because objects are strongly related and purpose is clear and highly motivated to achieve goals.

Reducing coupling has unnecessary layers of abstraction that consume developing time and processing time. Cohesion increases the number of interface by decomposing the system into subsystems. High cohesion and low coupling are good to achieving one tends to make achieving other easier.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Question:2 :

[A]

Describe the concept of system reengineering. What are some of its advantages and disadvantages?

Answer:

Reengineering is the systematic transformation of an existing system into a new form to

realize quality improvements in operation, system capability, functionality, performance,

or resolvability at a lower cost, schedule, or risk to the customer.

-[Reengineering center,1995]

System reengineering is the process of redesign and reimplementation of an existing system. The process of reengineering may be viewed as applying engineering principles to an existing system in order to meet new requirements. It rewrites parts or legacy system to make it more evolvable. So it can be easily accommodate for future changes. Some defines as the process of restructuring legacy software without changing its functionality. Others include a forward engineering phase as part of reengineering.

Reengineering required when some subsystems of a larger system require maintenance. It involves adding effort to maintain easier. The system can be restructured or redocumented. It doesn't change to whole system but change in its subsystems. Sometime it may be cost effective. Change in one can effect to other subsystem if they are related. It has activities like source code translation, reverse engineering to analyze program, structure improvement, and cleanup and restructure data.

Advantages of reengineering:

Reduced risk - developing new software it may be risk. It requires staff problems, specification and development problem

Reduced cost - cost reengineering is less than developing new software.

Disadvantages of reengineering:

Practical limit to the extent of reengineering

Major architectural changes or radical reorganizing of the system data management has to be done manually

Reengineered system is not likely to be as maintainable as a new system developed using modern software engineering methods

Question:2 :

[B]

Design an Access control policy for a web-based retail store considering three actors:

StoreAdministrator, Supplier and Customer.

Answer:

Actor

Object

Product information

Purchasing

Profile

Payment

Purchase

Order

User

Store administrator

Provide marketing service

Tailored offers

Set retail price

Supplier

Add new

Update

Receive order

<<create>> by admin

Customer

Browse product information

Input address

Add payment detail

Subscribe purchase product

<<create>> via web

Question:5 :

[A]

Design goals are commonly grouped into five categories. Describe each of the categories and give examples.

Answer:

In system design, design goals are first steps. System should focus on those goals. Some design goals can be define from nonfunctional requirement or application domain, from client. Design goals have to state properly such that decision can be made from the set of criteria.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Design goals are organized in five categories:

Performance criteria

It includes speed and space requirement that needed on system. It specifies the response time of system, perform multiple task, memory space availability.

Table-Performance Criteria

Design Criterion

Definition

Response Time

In how much time system respond to user request

Throughput

how many task can be performed

Memory

Space require for system to run

-[BRUEGGE AND DUTOIT, 2ND Edition]

Dependability criteria

It determines effort that needed in minimizing system crashes. It includes how often system can crash, what user have availability, security risk and safety issues for system crash.

Table- Dependability criteria

Design Criterion

Definition

Robustness

If user invalid input than it's able to handle it.

Reliability

Specified and observed behaviors are different.

Availability

System takes time to finish tasks that are notified.

Fault tolerance

Able to handle when error occurred

Security

Able to stop attack of malicious function

Safety

It avoid endangering human lives

-[BRUEGGE AND DUTOIT, 2ND Edition]

End User criteria

It identifies from user point of view. It is not covered in performance and dependability criteria. It identifies that system is easily understood and used by user or not? Can user achieve its tasks on the system? These type of criteria doesn't needed more attention.

Table- End User criteria

Design Criterion

Definition

Utility

It defines system support for user

Usability

System is user friendly or not?

-[BRUEGGE AND DUTOIT, 2ND Edition]

Dictated by Customer and by supplier

Cost criteria

This includes costs that needed for system develop, to enhance, and to maintain it. Cost criteria not only include system design but also for manage it. When something has to be change in system than it also includes cost to update it. There are different types of cost like development cost, training cost, maintenance cost, etc.

Table- Cost criteria

Design criterion

Definition

Development cost

It is need at initial stage of system development

Deployment cost

It includes installation and training user cost

Upgrade cost

Cost for Transfer older system into new one.

Maintenance cost

It required for bug fixes and enhancement to the system.

Administration cost

It requires for administer the system

-[BRUEGGE AND DUTOIT, 2ND Edition]

Maintenance criteria

It determines that to change in system after deployment is difficult. It also includes how new functionality added, how existing function be revised, is system taken from different application domain, how much effort requires for different platform. These criteria are difficult to optimize and plan for successful project and how long it will be use.

Table-Maintenance criteria

Design criterion

Definition

Extensibility

It defines how new functionality add to the system

Modifiability

It includes changes functionality of system

Adaptability

This identifies how easy to define system from different application domain

Portability

It defines different platform for system

Readability

How the system easy to understand from reading code?

Traceability of requirements

Map the code to specific requirements

-[BRUEGGE AND DUTOIT, 2ND Edition]

Question:5 :

[B]

What are the activities of object design?

Answer:

Object design includes four groups of activities are below:

Reuse.

The existing components identified in system design are used to help in the realization of each subsystem. Existing components are used in new system or upgrading system. In-built libraries and new components are selected for basic data structure and service. Design patterns are used for solve common problems and to protect specific classes from future change. Reuse components are adapted before their used. This is done by wrapping it from custom objects or by inheritance. Buy-versus-build trade-off is faced to developers during system design.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Interface Specification

Subsystems are specified in terms of class interface including its operations, parameters, data types and exceptions. Additional operations and objects needed to transfer data among subsystems are also identified. Each subsystems are define by complete interface specification is the result of service specification. This is often called subsystem API (Application Programmer Interface).

-[BRUEGGE AND DUTOIT, 2ND Edition]

Restructuring

Increase code reuse and meet design goals are manipulated during restructuring activities. This activity can be seen as graph transformation on subsets of particular model. Binary associations and implementation, two similar class from two different subsystems are merge into a single class, collapse classes with no behavior of attributes, split complex classes into simple ones, rearrange classes and operations to increase the inheritance. Maintainability, readability and understandability design goals are identified at restructuring.

-[BRUEGGE AND DUTOIT, 2ND Edition]

Optimization

This activity defines performance requirements of the system model. It includes speed up memory and queries, adding redundant associations for efficiency,, execution orders are changed, improve access time to objects and for performance requirements lower layers are added.

-[BRUEGGE AND DUTOIT, 2ND Edition]

REFERNCES

[BRUEGGE AND DUTOIT, 2ND Edition] Bernd BRUEGGE and Allen H. DUTOIT, Second Edition. Object- Oriented Software Engineering Using UML, Patterns and Java. (Prentice Hall publication) [Accessed at 7th July, 2010]

[Reengineering center,1995] Professor Moriarty. Perspective of Legacy system Reengineering (Reengineering center, Software Engineering Institute, Carnegie Mellon University, Pittsburgh) [Accessed at 7th July, 2010]

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.