Midterm Exam

by

YEE, Meng Yi


1. Categorize the following software applications by selecting the appropriate attributes from those detailed in the Requirements Comparison notes (HA-NH, ST-DY, SE-PA, DA-CO-AL, DE-ND): Be sure and justify each selection you make.

HA - This is a new project and it also need to know where to cut so that it will not hurt the users.

DY - It will not know which hairstyle the users will choose. It is unpredictable by the software even though it has a library for all the hairstyles.

PA - It must have many "hands". Every "hand" will have its own task like comb, measure, hold, cut and so on.

DA - It will need to scan the shape of the users' head and length of the users' hair so that it will know where to cut and how to cut. A lot of data is required to prevent any hurt to user or proceed the wrong hairstyle.

ND - The choice is made by users. Therefore, the software will not know which haircut will be proceeding.

NH - This application is already exists.

DY - Number of calls in every minute is different. So, it will not know how many calls will be made in the next minute.

PA - Many lines must be available because many phone calls can be made at the same time.

AL - The shortest path algorithm is needed to cut down the cost of the switching and decrease the lost data rate.

DE - If the caller location and receiver location is the same, the path will be the same until new lines are install and another shorter path exists. Now, the path will switch to the new path.

HA - This application probably has not been done yet and it needs to adapt different landscape.

DY - This is real-time application because the lawn mower must have a lot of sensors to detect where to cut and where are the shrubs, sidewalks, trees, or people.

PA - Some of the components of the robot must work together especially sensors, wheels and cutters.

DA and CO - Data from the sensors is used to control the movement of the lawn mower.

ND - The movement of the robot will be different in different locations and situations.

 

2. (10 pts) For the third software application area above, choose a software lifecycle model and explain why you think it would be appropriate for that domain.

The Cleanroom software lifecycle would be the most appropriate software lifecycle for the robot lawn mower application. This application is new and probably has not done before so everything must be well defined and a lot of feedback from users is needed. This lifecycle concentrate on mathematical principle so that the product will have accurate performance. Besides that, this robot lawn mower have to do what it suppose to do but not hitting shrubs, sidewalks, trees, or people. Therefore, a thorough analysis and testing is needed so that it will be error-free when launching the new product.

From the strengths of Cleanroom software lifecycle, I know that the product of using this lifecycle will have extremely low error rate. This is what the expectation of the product. It also produces better code than other lifecycle model because it encourage of code reuse. The requirement and specification is well defined which will lead to easy to track. Furthermore, lower error rate causes the application will have a longer life.

http://www.qni.com/~judykay/cs457/homework1a.htm

 

3. (10 pts) For the third software application area above, choose a software requirements methodology and explain why you think it would be appropriate for that domain.

The appropriate software requirement methodology is Coad's Object-Oriented Analysis (OOA). As mention above, this is a new application and it need a lot of analysis so that the product error rate will be extremely low. Also, the codes can be reused and easy to track. This software methodology fits the Cleanroom software lifecycle perfectly. This software methodology encourages a lot of thinking so that the error rate is extremely low, allows for opposing alternatives and makes it easy for analyst to modify when feedback is given by the clients. Only OOA is the only one has these three important traits for real-time programming.

http://www.cstp.umkc.edu/~hines/457/req_comp.html

 

4. (10 pts) Which of the following statements are ambiguous? Explain why or why not.

Unambiguous - This statement means the system must response in exactly 5ms after the input.

Ambiguous - The "easy to understand" is not clear enough. It must be defined for a certain level of user. An expert can said "this is easy to understand", but the beginner user might not think that is easy. 

Ambiguous - The users will not know what is the function of those numbers if they do not have any references. Buttons with names on them is a better choice. 

Ambiguous - This statement does not specify the size of the glass to be used, the kind of elevator to test. Water in a bigger glass is easier to spill than a smaller glass.

Unambiguous - This statement defines that the system must be batch-oriented. So, the programmer will develop the application accordingly.

 

5. (8 pts) Which of the following pairs of requirements are inconsistent? Why or why not?

Inconsistent - The response time for BUILD time could be greater than 0.1 second and less than 5 seconds. So, it is not consistent between this period.

Consistent - The response time for BUILD time is always less than the response time for all command.

Inconsistent - Time conflict occurs because two response time conflict occur in "less than 1 second".

Inconsistent - The response time for BUILD is not exactly the same as  the response time for all commands which is 2 seconds.

 

6. (20 pts) With respect to representation of components, relationship and rules, compare one of the requirements methods you researched and one of the requirements methods you did not research but which a classmate did research.

Representation of Component

There are four components used in DFD:

There are two components used in HIPO:

Relationship and Rule

Relationship

The DFD may be used for any level of data abstraction. DFD can be partitioned into levels. Each level has more information flow and data functional details than the previous level.

HIPO takes three different levels according to their level of detail. The system level is the highest level of abstraction which is to model the major subsystems. The program level is the next level of refinement. The final level is the lowest level of abstraction where detailed functional design of the program take place.

HIPO process charts are similar to DFDs in the representation of the system processes. The main difference between the two is the underlying organizational structure. HIPO method produces a model according to the structural relationship of the system components while DFD method arranged the system model according to information flow throughout the system components.

Rules

DFD

HIPO

http://cctr.umkc.edu/~hhussain/cs457/hw4_hipo.html

http://www.cstp.umkc.edu/~deidson/cs457_h4.html

 

7. (15 pts) What is the primary purpose for using a software planning tool? What are the advantages and disadvantages?

The main purpose of a software planning tool will help the managers to define and visualize the project's schedule in an easy and effective way. With the software planning tool, the project cost will can be monitored easily so that the cost will not go over budget. This also will help managers to run a project in a more organized way. Besides that, the software planning tool will help to define project phases, clarify and establish goals, anticipate obstacles, and distribute assignments.

Advantages:

Disadvantages:

 

8. (7 pts) What special kinds of problem are presented when specifying the requirements of real-time systems? Compare and contrast these to specifying the requirements of an interactive system.

The design of real-time system is resourceconstrained. The primary resource for real-time system is time. It is essential to complete a defined task within a given number of CPU cycles. Additionally, other system resources, such as memory size, may be traded against time to achieve system objectives.

Real-time systems are compact and complex. A sophisticated real-time system may contain over a million lines of code and it only represents a very small percentage of the total system.

Real-time system always work without human user. Therefore, real-time software must detect problems that lead to failure and automatically recover from these problems before damage to data and the controlled environment occurs.

Interactive system involves the interaction among hardware, software, human and database. Interactive system is simpler than real-time system. Functions and interface is more concern in interactive system. Time is not the most essential concern in interactive system. So, it is much easier to handle the functions in interactive system.

But, interactive system have to be fast too because the users do not like to wait. The response time determine the quality of the system. The goal of interactive system is to keep the response time low.

Software Engineering: A Practitioner's Approach. 4th edition. by Pressman, Roger S.