Skip to main content

Posts

Security, Safety and Mission Critical Software Systems

There are 3 types of software control systems based on the nature of their desired functionality and the environment being operating in: Security Critical Systems: This category consists of software responsible for ensuring the security of a particular system or its user and thus protecting the privacy of an individual from objects both within the same environment and from outside the environment being operated in. Examples of such systems consists of banks, personal laptops and computers.  Security Critical System: Banking Systems Safety Critical Systems: These are the software responsible for operating systems involving a human life. These software are responsible for operating system providing the desired output without posing a threat to a human life involved in the operation. Examples of these systems consists of air crafts flying on auto-pilot, radiation machines such as Therac-25 etc. Safety Critical System: Therac-25 Radiation Machine There are 2 possible me...

What are the Quality Attributes of Non-Functional Requirements? And How to Maintain the Quality of Non-Functional Requirements

Q1.What are the quality attributes of a non-functional requirement? Following are the quality attributes of a non-functional requirement: Functional Suitability Appropriateness Completeness Correctness Reliability Availability Fault Tolera nce Recoverability Maturity Usability Accessibility Appropriateness Learnability Operability User Error Protection User Interface Aesthetics Performance Efficiency Time Behavior Resource Utilization Security Confidentiality Integrity Non-Repudiation Accountability Authenticity Compatability Co-Existence Interoperability Maintainability Analyzability Reusability Testability Portability Adaptability Instability Replaceability Q2. How can we maintain the quality of non-functional requirements? Maintenance of the NFRs requires these being measurable. Following steps are required during the software product lifecycle for ensuring the maintenance of the non-functional requirements: Expli...

Quality Assurance in Software Development Life Cycle

Quality Assurance is a set of activities keeping in check the quality of a product. In software industry following are some of the some of the aspects used for assessing the quality of the product and the process model adopted for developing the product: The quality of code: Code cohesion is minimal Code coupling is minimal Lower rate of fault detection Code is understandable Code is reusable Minimal cyclomatic complexity Minimal design complexity The quality of the process model adopted: Minimal or no communicational gap Minimal software development effort required Minimal software testing effort required Improved productivity in the organization Minimal development cost Delivery of the product or a part of the product is according to the agreed upon schedule To achieve the above quality factors following are some of the quality assurance practices being adopted in various software development process models: Refactoring of Code:   It is a process of mak...

Ways of Writing Reviews for a Research Paper

Peer review of a given research paper highlights its strength and its weaknesses in terms of the quality of the research paper written. The ways of writing reviews for a research paper discussed in this blog are among the most common methods adopted for peer reviews. When writing a review for any given research paper following are the questions to be answered: How sound is the research design? What do we now know that we did not know before? What can we do now that we could not do before? Are the reported conclusions generalized? What is the most questionable issue of the paper? Why is the experience not very representative? How sound is the solution? What is the next step to take? Whose goals are served or helped by this? Why wouldn't I use the same approach? Another method adopted for writing a review of a given research paper is rather simple and requires less effort. This method contains the following sections to be answered: Summary:  This section summarizes...

How traceability of non-functional requirements is managed throughout the software development process?

1. Requirements Traceability: Requirements traceability is the process of describing and keeping track of a set of requirements throughout the system’s lifecycle. The process assists in managing changing requirements of a particular software product. Requirements traceability of is two types, forward traceability where a particular requirement involved during the design and implementation phases of the software system, and backward requirement traceability where a particular requirement is being traced back to its source. 2. Proposed Solutions for the Traceability of Non - Functional Requirements : The author J. Merilinna [8], proposed a framework supported by a tool to trace the non-functional requirements in both forward and backward direction. The proposed method is based on the context of DSM (Domain Specific Modeling).  The NFR+1 framework involved are used for the elicitation, definition and redefinition of the system’s non-functional requirements. The...

Software Architectural Styles

1.     Software Architectural Styles Description: Sr. # Style Name Component Types Connectors Configuration / Topology Quality Attributes 1.                   Process Control Architecture Processes Message Protocol Arbitrary ·          Performance ·          Reusability 2.                   Message Bus Architecture ·          Schemas ·          Shared Data Infrastructure Buses Network ·          Extensibility ·          Scalability ·  ...