Posts

Showing posts from August, 2019

HW4: Chapter 11 & 12

Ch 11 & 12 What is the common characteristic of all architectural styles that are geared to supporting software fault tolerance?  The three fault-tolerant architectural styles outlined were protection systems, self-monitoring systems, and N-version programming. Each of these systems uses software & sometimes hardware diversity deal with faults. Protection systems can use separate sensors and software to monitor the system and the environment for potentially unsafe states and attempt to move to a safe state. Self-monitoring systems use multiple versions of software and hardware to complete the task and the system compares the results and makes a decision based on these comparisons. Finally, N-version programming uses multiple versions of software, developed by separate teams, to interpret and act on the same input and then compares the results. If a fault is found the fault manager deals with the faulty unity by attempting a repair or removing it from the system for rep...

HW:3 Chapter 10

10.6. Explain why it is reasonable to assume that the use of dependable processes will lead to the creation of dependable software. Software development via dependable processes is a formalized and systematic way of developing software that has five attributes; Auditable, Diverse, Documentable, Robust, and Standardized. The goal is to reduce the possibilities of introducing errors into the system as well as finding and removing any errors that may have made it into said system. By using a systematic approach to development engineers can learn from past mistakes or oversights as well as follow a model designed specifically to create dependable software. There is a focus on documentation, specification, change management, redundancy, and diversity that all facilitate the creation of a more reliable system for software development. Therefore, dependable processes typically lead to dependable software. 10.10. It has been suggested that the need for regulation inhibits innovation...

HW2: Responses

Image
Common Threads While reading through the four articles I found myself thinking about the little experience I have in the programming or software development world but that in the little experience creating small, mostly meaningless 'programs' the concepts and problems discussed were relevant. A common theme I found throughout was the importance of design, organization, and testing. Should I have spent a bit more time developing a gameplan before diving face first into creating simple data structures examples? Definitely. Should I have kept a detailed log of all of the ways I tried and failed to solve a problem with my program as the " Cherry-Picking and the Scientific Method ?" suggested? Yes again. The idea that the development of the software wasn't primarily about the coding itself but the process and all the hurdles that must be overcome throughout was something I found intriguing. Incremental development Incremental development was mentioned outright i...

HW1: Chapter 1

Enjoy. Four Important Attributes Four important attributed identified by Sommerville are Acceptability, Dependability and Security, Efficiency, and Maintainability. These are broadly defined to provide the framework in which software development should work within. Four additions I'd consider making to the list are a bit more specific but important in their own right.  Ethically Designed and Used Software should be designed in a way that takes into consideration its future use and what the initial developers understood its use would be. For example, if a software engineer designs a facial recognition product to allow users to better sort photographs for users. It is unethical for their work to be used in a nefarious manner without explicit permission. Section 1.2 is devoted to software engineering ethics and placing an emphasis on this topic seems warranted considering the larger and larger impact that software has on the day to day lives of the majority of the world. U...

HW0:Introduction

About Me My name is Dwayne Ferguson, I am 34 years old and am a student at College of Charleston. I have a wife of 12 years and two wonderful children, 9 and 6. I spent a bit more than a decade at my previous job but we decided that chapter of our lives was over and both my wife and I headed back to school.  Being back in school has been an adjustment as many of the ways my experience in the 'real world' functioned differ drastically from the college experience. Not to say they are all good or bad, just different. Luckily, I've been interested in computers of all kinds since a young age and found something I enjoyed learning about in the Computer Science Department.  I hope to learn to apply the formal education gained at the College of Charleston with practical applications as I progress through school and hopefully end up finding meaningful work in the non-profit world. I'm looking forward to learning more about software development and hopefully hon...