Posts

HW27:Chapter 25

25.10. Describe five factors that engineers should take into account during the process of building a release of a large software system. Competition - Having an understanding of where the competition is in their release process and what features they may be looking to implement could have a significant impact on how and when to release a software system. If a competitor releases a similar product with more functionality before you, it will have an impact on how your release is received. Marketing Requirements - Similar to the considerations for competition, marketing has an impact on how and when something is released. If consumers desire specific features and the current software is unable to deliver these it may be prudent to delay the release, depending on the competition's ability to deliver their product. Platform - The platform the users are likely to use the software on is important to the release. For example, if the software was designed for release on Windows, but...

HW26:Chapter 24

24.6. Explain why program inspections are an effective technique for discovering errors in a program. what types of errors are unlikely to be discovered through inspections? Program inspections are essentially peer reviews of code that take place during development. Teams collaborate and walk through code line-by-line in search of bugs, exceptions, erroneous conditions, in house compliance issues, as well as things the team deems worthy to discuss. They are considered good practice because they bring together a diverse set of engineers to review the code and it can also help create a company culture that understands the importance of acknowledging errors and moving forward to improving. Sommerville states that during program inspections, there is broad use of checklists to help guide the process. These checklists are typically language-based and cover a wide range of common errors found in the past. This could lead to a reliance on such lists and overlook some more technical issue...

HW25:Team Progress II

Team Progress II The team has started significant work on the final paper and poster. We have a rough draft of each that will require some editing but by and large the bulk of the work is finished. That isn't to say there isn't work to do still. In the past week, we worked on polishing and commenting on the script to clarify how it operates and why it operates in a specific manner. The time I've been spending on bash has been surprisingly enjoyable. I enjoy its simplicity and its power at manipulating files and text. The script was also modified to compile all of the driver files at once to speed up the testing process. This may not be ideal if the user was going to create new test files as they would need to modify the current script to compile properly. Previously the script would handle any additional drivers but the way it was accomplishing this caused the script to run significantly longer. Another thing that needed some work was the HTML document we have displayi...

HW24: Chapter 23

Image
23.6. Figure 23.14 shows the task durations for software project activities. Assume that a serious, unanticipated setback occurs, and instead of taking 10 days, task T5 takes 40 days. Draw up new bar charts showing how the project might be reorganized. The picture above is a Gantt chart with the task T5  taking 40 days instead of 10.  After reviewing the data, there doesn't seem to be a way to improve upon the current ordering. With only T10 being directly dependent on T5 but also dependent on T9 and therefore T6 which in turn is dependent on T3 and T4, the change of T5 from 10 to 40 has no negative impact. This all assumes that there were adequate personnel for each task as they became available and that T5 started at day 1 originally.

HW23: Chapter 22

22.6. Fixed-price contracts, where the contractor bids a fixed price to complete system development, may be used to move project risk from client to contractor. If anything goes wrong, the contractor has to pay. Suggest how the use of such contracts may increase the likelihood that product risks will arise.  The primary way this type of contract could increase risk arises because if the contractor is motivated primarily by profits they may find certain risks more acceptable to increase their profit margin. This is due to the fact that often the methods to mitigate risks come at increased cost thereby decreasing the profit made by the contractor. For example, if the project manager identifies a deficiency in the number of personnel with a certain skillset the plan to mitigate this risk may be to hire another engineer with similar skills. The contractor may see this risk, but also know that hiring an additional engineer comes at a significant cost and decreases the profit of the p...

HW22: Chapter 21

21.4. Explain why an object-oriented approach to software development may not be suitable for real-time systems. For an object-oriented approach to software development, top-down design processes are typically used. This means creating a high-level model and decomposing down. This development model is not ideal for real-time system design due to several factors. First, real-time systems typically have different constraints that have a greater impact on system performance. Physical limitations for an embedded system may affect power, space, size, weight, etc., which in turn has an impact on the processing power available, memory size, etc. While these constraints may exist in other non-real time systems, the limitations are more extreme in real-time systems. There is also a necessity for direct hardware interaction that object-oriented design hides information about data and accessing the values has a performance cost that is often too high to permit its use in real-time systems. I...

HW 21: Team Progress I

Team Progress Team Lamp has come together quite well on the project. Each member has been upfront about deficiencies but also indicated a willingness to work toward completing each deliverable on time. I'm going to give a brief overview of our progress and some of the challenges we have faced thus far.  The goal of our project was to find an open-source project and use that project to create a testing framework to test a small portion of the project. We chose Glucosio, an android project designed to help people manage their blood sugar levels.  Building the Project Our first real hurdle came shortly after this when we had quite a bit of trouble getting the project to build. It had been dormant for about four years and this point and it had no real documentation about installation or development. A contributing factor in this was the fact that no one on our team had experience with Android Studio or, I'm sad to admit, experience with building a project period. Becau...

HW:20 Chapter 20

20.10. You work for a software company that has developed a system that provides information about consumers and that is used within a SoS by a number of other retail businesses. They pay you for the services used. Discuss the ethics of changing the system interfaces without notice to coerce users into paying higher charges. Consider this question from the point of view of the company's employees, customers, and shareholders. The answer to this question depends largely on the relationship between the various SoS managers/companies was established and maintained. Companies choose to use systems of systems because it is to their benefit. They can rely on another entity to create a product that they can use in their own product and by doing so save on cost. Typically, these companies are not choosing to use the system of systems for some altruistic purpose but instead to make their businesses more profitable. This is why it is important for businesses using systems of systems softw...

HW19: Chapter 19

19.3. Why is it impossible to infer the emergent properties of a complex system from the properties of the system components. Emergent properties are properties of the system as a whole. These properties typically only become apparent after the system is integrated and in its operational environment. These properties can be split into functional and non- functional emergent properties. Functional emergent properties are related to the function of the system. Sommerville uses the example of a bike that is to be used for transportation but this property does not exist until the bike is assembled. In a complex system, where many subsystems are integrated and people are thrown into the mix, some unforeseen functional properties may arise. Predicting what these properties will be is difficult in part because users interacting with complex systems will do so in unpredictable ways. Many users will be intimately familiar with the processes the system is supporting and therefore will have ...

HW18: Chapter 18

18.4. Define an interface specification for the currency converter and check credit rating services shown in figure 18.7. Currency Converter Operation Description Lookup Display information on currency input Compare Allow user to compare multiple currency/exchange rates against one Search Allow user to search for currency based on country / location Operation Input Output Exception Lookup lookIn Currency ID Currency Name lookOut URL of page with currency information lookFault Invalid currency ID Invalid Name/None found Compare compIn PrimaryCurrencyID(1) CurrencyID (Max 10) Currency Name (Max 10) compOut URL of page with comparison search results compFault Invalid currency ID’s Invalid Name/None Search searchIn Search string searchOut URL of s...

HW17-B: Chapter 17

17.10. Your company wishes to move from using desktop applications to accessing the same functionality remotely as services. Identify three risks that might arise and suggest how these risks may be reduced. Three risks to consider when migrating from a desktop application to a remote service are security, decreased response time, and data management. For security, the risks of going from a desktop application to a remote service are important to handle. Interception, interruption, modification, and fabrication are methods that attacks may use to disrupt a remote system. Depending on the architecture chosen these attacks on parts of the service may disrupt the entire service. Ensuring a standard security policy is used across the system is a way to help combat this risk but there may be issues getting different system managers to adhere to the same policies. If the architecture chosen is multi-tier client-server then there may be more control over the system and therefore the secur...

HW17-A: Chapter 16

Image
16.9: Design the interfaces of components that might be used in a system for an emergency control room. You should design interfaces for a call-logging component that records calls made, and a vehicle discovery component that, given a zip code and an incident type, finds the nearest suitable vehicle to be dispatched to the incident.

HW16: Chapter 9

Software Maintenance and Lasting Professionals Three different types of software maintenance. Fault repairs to fix bugs and vulnerabilities involves fixing existing problems with the code itself, the design of the system, or requirements issues. Coding errors are the simplest to fix and the financial and time costs go up when fixing design and requirements problems. A design error may require the developer to re-write many components and requirements errors may require a system overhaul to bring it within acceptable operating levels. Environmental adaptation to adapt the software to new platforms and environments. I tend to think of this as updates to the 'things' the software runs on such as hardware or other software such as the operating system or some other piece of software that the system interfaces with. These changes may require changes to the system to allow continued operation. Functionality addition to add new features and to support new requirements. These ...

HW 15: Chapter 15

15.10. The reuse of software raises a number of copyright and intellectual property issues. If a customer pays a software contractor to develop a system, who has the right to reuse the developed code? Does the software contractor have the right to use that code as a basis for a generic component? What payment mechanisms might be used to reimburse providers of reusable components? Discuss these issues and other ethical issues associated with the reuse of software. Business Ethics(in software) The ethical reuse of software is an interesting topic that made me think about other industries and how they develop new products or technologies and how that related to software development. I think one of the first issues to tackle is the legal aspect of the situation. If a company contracts the services of a software contractor and in the terms explicitly forbids the reuse of the software they develop while working on their project then the contractor is obligated to perform their services i...

HW14: Testing Reflections

Image
I can recall early on in my computer science college education being told about the importance of testing. Oddly enough, I don’t recall ever being taught how to do it, or why it was so important until CSCI 362. While it seems apparent why testing would be important when creating a complex system or product, there are unique circumstances in software development that require more of an explanation to understand its importance to its success or failure. As I was thinking through some of the way’s software testing might be different from testing, say a new bicycle design, it became apparent that software testing would likely be more complicated for a few reasons. Testing Reflections Don't Think They Tested For This. First, the number of possible ways to interact with a software system is practically limitless whereas with a bicycle it is expected that the user will interact with it in a limited number of ways. This may seem like an oversimplification, but the same could...

HW13: Chapter 8

Chapter 8: Software Testing This chapter went over development testing, test-driven development, release testing, and user testing. The first question below was interesting to do as the scenarios in the text had user interactions and that made it easier to visualize how the system may be used. The wilderness weather system does not interact with a user, therefore, the scenario revolved around what the system might encounter in daily operation.  8.7. Write a scenario that could be used to help design tests for the wilderness weather system. A particular wilderness weather system is to be accessed by satellite uplink. The wilderness system collects its readings from the Anemometer, Barometer, thermometers, rain, sunshine, and visibilities gauges. Due to inclement weather, the wilderness weather system has not transmitted this data over the satellite link. The weather in the area of this system is very frigid with low visibility and has had to pause instrument operation to gene...

HW8: Chapter 2

2.1. Suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems. Explain your answer according to the type of system being developed: A system to control antilock braking in a car The antilock braking of a car is a safety-critical system and therefore it seems the most appropriate model would be the waterfall model. The requirements analysis and definition of the system would be necessarily thorough and extensive documentation for the approval process would be expected. Also, the requirements for the system would remain relatively static, an area where the waterfall model excels. This is the most 'formal' model presented in the text. A virtual reality system to support software maintenance Integration and configuration would allow for a sufficiently generic yet modifiable program. Because the system may be used in different software environments having increased adaptability is cruci...

HW12: Mythical Man Month

Image
MMM The Mythical Man Month, written by Frederick P. Brooks in the mid 70’s, gets straight to the heart of flaws in the way people then, and to some degree now, may think about software development.   Much like his No Silver Bullet , Brooks uses colorful language and analogies to describe the development process and its flaws. The term tar pit still evokes an image of floundering dinosaurs in their “mortal struggle” and Brooks uses this term to describe the current state of large-system programming; teams struggling to meet deadlines, budgets, goals. The five reasons Brooks outlines as causes for these failings are poorly developed estimating techniques, assumptions about manpower and months being interchangeable, lack of stubbornness, bad schedules, and poor responses to schedule slippage. Approximate? Admittedly, I have put little thought into the development process in large scale efforts of software engineering despite having been involved in non-software related govern...

HW11: Chapter 6

Image
This is my take on the conceptual and process views of 3 different machines. I found myself having difficulty distinguishing between the two in some instances. I seemed to want to go directly to the process view and skip the conceptual view altogether. I'd like to find some simple, real-world examples of conceptual and then process view diagrams of the same system to see the differences. 6.4: Draw diagrams showing a conceptual view and a process view of the architectures of the following systems: A ticket machine used by passengers at a railway station. A computer-controlled video conferencing system that allows video, audio, and computer data to be visible to several participants at the same time. A robot floor-cleaner that is intended to clean relatively clear spaces such as corridors. The cleaner must be able to sense walls and other obstructions. %3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2...

HW10: Chapter 5

Image
System Modeling 5.3. You have been asked to develop a system that will help with planning large-scale events and parties such as weddings, graduation celebrations, and birthday parties. Using an activity diagram, model the process context for such a system that shows the activities involved in planning a party ( booking a venue, organizing invitations, etc.) and the system elements that might be used at each stage. This diagram does not include food, drinks, decorations, chairs, equipment, DJ, photography, or the other myriad of things possible at a party. It simply goes through the process of determining the size, date, venue, guest list, and invitations.     5.5 Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrollment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to find out about a...

HW 6: Chapter 4

Requirements Engineering 4.5. Using the technique suggested here, where natural language descriptions are presented in a standard format, write plausible user requirements for the following functions: An unattended petrol (gas) pump system that includes a credit card reader. The customer swipes the card through the reader, then specifies the amount of fuel required. The fuel is delivered and the customer's account debited.  The system should display instructions about the fueling process that progress as the process unfolds. (Swipe card > Select fuel type > Select amount of fuel required > How to dispense fuel) The system shall monitor or detect the swiping of a credit card to begin a transaction.  The system shall ask the customer the type and quantity of fuel required. The system shall check fuel levels available to be dispensed are adequate to fulfill requested fuel amount prior to charging the customers card.  The system shall ensure funds are sec...

HW:7 Reflections

Better than Goldfish, but Not by Much The four articles: The Magical Number 7 , Tire Pressure Monitoring System , Spy Car Act of 2015 , and Test-Driven Development  were interrelated in an interesting way. At first, I had a difficult time understanding where The Magical Number 7 fit in this group but after a short time, I realized how the research on attention spans and memory in the article was related to Test-Driven Development. Essentially, The Magical Number 7 is explaining research done in the 1950s that gave some insights into the short term memory and attention spans in average humans were relatively stable across a wide range of people. The key takeaway, and how this relates to TDD, is that human beings have short attention spans and as our knowledge about the subject lessens our ability to recall information decreases precipitously and because of this TDD is an ideal tool to work with that limitation. TDD works by limiting the amount of new information the developer nee...

HW5: Reflections

Common concerns in the articles and reflect upon them Common things I found throughout the four chapters and several readings were that systems require reliable, safe, and secure systems and the best way to obtain and maintain these systems is through a systematic approach do design, development, and deployment with reliability, safety, and security as focus areas. The Therac-25 Accidents article shows how a failure in the development of software can have potentially lethal consequences. Had the engineers developing this equipment used techniques such as n-version programming or more thorough safety verification processes there is a higher probability that the accidents would not have occurred. There were repeating themes throughout the chapters such as reliability, dependability, safety and security, etc. This was the case when discussing reliability engineering, safety engineering, security engineering, and resilience engineering. Each section discussed the importance...