Wednesday, September 14, 2016

HW10: Chapter 5





(5.3): ... Using an activity diagram, model the process context... that shows the activities involved in planning a party and the system elements that might be used at each stage.


(5.5): Develop a sequence diagram showing the interactions involved when a student registers for a course in a university...

(5.7):  Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine.

(5.8): Draw a sequence diagram fro the same system. Explain why you might want to develop both activity and sequence diagrams when modeling the behavior of a system.

A Sequence diagram shows in better detail the interactions between actors and the objects in a system. This also includes interactions between differing objects. An Activity diagram better shows the  individual activities involved in a system. Together, Sequence and Activity diagrams give the designer and potentially the client a clearer perspective of how the system is structured.












Monday, September 12, 2016

HW9: Reflections

    
     Software design and programming are inherently becoming critical parts of our lives. We have witnessed a steady progression of technological advances in our everyday products that at one-time, had no association to such. Because of this steady progression, we have to ask ourselves what technologies do we have today, that may be radically changed in the near tomorrow. From the “ 9 predictions for the future of programing”, there are  3 distinct trends I see that will continually advance. 

  “Smartphones will do everything but phone calls”… ? Practically, yes; the advancement of mobile devices is at the pinnacle at what we consider rapid advancement. Just a little over 25 years ago pagers (aka beepers) were the standard for mobile devices, and its main functionality was no more than receiving limited lines of text. Compared to today, our mobile devices can receive and deliver virtually an unlimited amount of messages, access the world wide web, snap and record pictures/videos, download applications, act as a GPS, be used an accelerometer, video conferencing,  and finally take and place phone calls.  This steady line of innovative features packed in small electronic box will continue to grow. The basic feature of making a phone call will not evade the smartphone, but will continue to see a slew of new technologies embedded into it.

  Data collection has become a necessity for a lot of applications, businesses, state and federal institutions. The more the data we have, the easier it becomes for us analyze and understand the world around us. It is not by accident that data centers are emerging around every corner. We as society understand with the useful collection of information about our surroundings, we will be better equipped to handle tasks in a safe and efficient manner. Collected data that can be used in a relational type database can improve in how we live and go about our daily lives. Such databases can easily identify current and potential problems, virtually store unlimited information, and identify trends that we may have otherwise overlooked. Information is power, and the more power we have, the less complicated our everyday lives become. Thus, databases will continue to soar and become an intermediary feature that sets apart one technology from the other.

It is no secret technology is all around us. As so, it only makes sense to try to understand it. I believe one who understands his environment is one who will have a significant better chance of thriving. Likewise, our legislators and educators seem to have embraced this approach. We are now seeing programming courses being offered and taught to our youth. Wether offered as apart of  a school curriculum, elective or via summer camps, there is a heightened effort to acquaint our youth with programming concepts and technologies.  As a result, at some point the majority of the population will have some type of programming experience. Unfortunately this does not equate to the majority of the population writing “real code”. Programming can be stressful, aggravating, and time-consuming. With technology continually advancing, it will require coders to be self-teachable. All of this combined, I only see a small portion of the population willing to take on these challenges.

The trends outlined here will continue to grow. It benefits both the end-users and the industry. Within time the advancements will become self-evident, however, for these trends to continually trend upward, there has to be a steady base of talented individuals willing to take on the associated challenges. Wisely enough we are preparing for that by familiarizing the youth to the different realms of programming. 

HW8: Chapter 2


(2.1) Suggest the most appropriate generic software process model hat might be used as a basis for managing the development of the following systems...


A system to control antilock braking in a car

Waterfall model;  an antilock braking control system is a critical embedded software system that intertwines software with hardware that is apart of a broader system. These aspects makes it crucial for it to be modeled by the Waterfall process.

A virtual reality system to support software maintenance: 

Waterfall model; this system will require regular maintenance and updates. The Waterfall model highlights maintenance as its longest life-cycle phase, thus making it an ideal software process for this system.

 A university accounting system that replaces an existing system

Integration and configuration; this approach relies on the reuse of some components from a predecessor. With an intricate university accounting system, there are more than likely multiple components from the predecessor system that will be recycled and reused in the newer system. Also, this system is a stand alone application with a very defined role. Having these features  makes it a primary candidate for the Integration and Configuration process.


An interactive travel planning system that helps users plan journeys with the lowest environmental impact:

Incremental; this type of system will depend heavily upon its users. As such, the developers will need to consistently get feedback from users while developing the system. The Incremenatal approach will allow for this because of it allows user input at every relative stage of the process. Thus, designers can make changes as needed without a large amount of back tracking.