{"id":337,"date":"2018-05-15T04:01:26","date_gmt":"2018-05-15T04:01:26","guid":{"rendered":"http:\/\/people.utm.my\/nurazaliah\/?p=337"},"modified":"2018-05-15T04:14:37","modified_gmt":"2018-05-15T04:14:37","slug":"software-engineering-101","status":"publish","type":"post","link":"https:\/\/people.utm.my\/nurazaliah\/2018\/05\/15\/software-engineering-101\/","title":{"rendered":"SOFTWARE ENGINEERING 101"},"content":{"rendered":"<h3><strong>\u2022 Software Process and Measurement<\/strong><\/h3>\n<p>Software measurement is a quantified attribute (see also: measurement) of a characteristic of a software product or the software process. It is a discipline within software engineering. The content of software measurement is defined and governed by ISO Standard ISO 15939 (software measurement process).<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Software_measurement<\/p>\n<p><strong>1. Requirement Engineering<\/strong><br \/>\nRequirements analysis, also called requirements engineering, is the process of determining user expectations for a new or modified product. These features, called requirements, must be quantifiable, relevant and detailed. In software engineering, such requirements are often called functional specifications.<br \/>\nhttps:\/\/searchsoftwarequality.techtarget.com\/definition\/requirements-analysis<br \/>\ncpre<\/p>\n<p><strong>2. Software Architecture<\/strong><br \/>\nSoftware architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures. These structures are needed to reason about the software system.<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Software_architecture<\/p>\n<p><strong>3. Testing, Verification and Validation<\/strong><br \/>\nSoftware verification and validation. In software project management, software testing, and software engineering, verification and validation (V&amp;V) is the process of checking that a software system meets specifications and that it fulfills its intended purpose. It may also be referred to as software quality control.<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Software_verification_and_validation<br \/>\nctfl<\/p>\n<p><strong>4. Quality, Metrics and Measurement<\/strong><br \/>\nA Metric is a quantitative measure of the degree to which a system, system component, or process possesses a given attribute. Metrics can be defined as \u201cSTANDARDS OF MEASUREMENT\u201d. Software Metrics are used to measure the quality of the project<br \/>\nwww.softwaretestinghelp.com\/software-test-metrics-and-measurements\/<\/p>\n<p><strong>5. Maintenance and Evolution<\/strong><br \/>\nSoftware evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing software initially, then repeatedly updating it for various reasons<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Software_evolution<\/p>\n<p><strong>6. Security, Safety and Reliability<\/strong><br \/>\nsoftware reliability, i.e., an extremely high confidence in the ability of the software to perform flawlessly. to prove and ensure the correctness of software\u2019s functioning.<\/p>\n<h3><em><strong>\u2022 Software Approach<\/strong><\/em><\/h3>\n<p><strong>1. Agile Software Development<\/strong><br \/>\nAgile software development describes an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)\/end user(s).<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Agile_software_development<\/p>\n<p><strong>2. Empirical Software Engineering<\/strong><br \/>\nResearch area concerned with the empirical observation of software engineering artifacts and the empirical validation of software engineering theories and assumptions. Subfields of software engineering that are accustomed to empirical research comprise software evolution, software maintenance and mining software repositories.<br \/>\nhttps:\/\/www.monperrus.net\/martin\/introduction-to-empirical-software-engineering.pdf<\/p>\n<p><strong>3. Object and Component-Based Software Engineering<\/strong><br \/>\nComponent-based software engineering (CBSE), also called as component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a given software system.<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Component-based_software_engineering<br \/>\nObject-oriented software engineering. Object-oriented software engineering (commonly known by acronym OOSE) is an object-modeling language and methodology. OOSE was developed by Ivar Jacobson in 1992 while at Objectory AB. It is the first object-oriented design methodology to employ use cases to drive software design.<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Object-oriented_software_engineering<\/p>\n<p><strong>4. Cloud-Based Software Engineering<\/strong><br \/>\nCloud computing can enable or facilitate software engineering activities through the use of computational, storage and other resources over the network. Organizations and individuals interested in cloud computing must balance the potential benefits and risks which are associated with cloud computing. It might not always be worthwhile to transfer existing services and content to external or internal, public or private clouds for a number of reasons. Standardized information and metrics from the cloud service providers may help to make the decision which provider to choose. Care should be taken when making the decision as switching from one service provider to another can be burdensome due to the incompatibilities between the providers. Hardware in data centres is not infallible: the equipment that powers cloud computing services is as prone to failure as any computing equipment put to high stress which can influence the availability of services.<br \/>\nhttps:\/\/tuhat.helsinki.fi\/portal\/files\/28513674\/cbse13_proceedings.pdf<\/p>\n<p><strong>5. Web-Based Software Engineering<\/strong><br \/>\nWeb-based software engineering process management. It is well known that a sound software process is the basis for a successful software project. The paper discusses the development of a Web-based software process management and monitoring tool designed to assist in producing better software projects.<br \/>\n. eeexplore.ieee.org\/document\/667442\/<\/p>\n<p><strong>6. Agent-Based Software Engineering<\/strong><br \/>\nAgent-Oriented Software Engineering (AOSE) is a new software engineering paradigm that arose to apply best practice in the development of complex Multi-Agent Systems (MAS) by focusing on the use of agents, and organizations (communities) of agents as the main abstractions<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Agent-oriented_software_engineering<\/p>\n<p><strong>7. Distributed and Parallel Software Engineering<\/strong><br \/>\nDistributed computing is a field of computer science that studies distributed systems. A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages. The components interact with each other to achieve a common goal.\\<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Distributed_computing<br \/>\nParallel computing makes use of concurrency to reduce the runtime, increase the throughput, or improve the fault tolerance of a computational process.<\/p>\n<p><strong>8. Knowledge-Based Software Engineering<\/strong><br \/>\nKnowledge-based engineering (KBE) is the application of knowledge-based systems technology to the domain of manufacturing design and production. Knowledge-based software engineering emphasizes the fact that creating software is a knowledge-intensive activity, and proposes that making more knowledge available will facilitate the timely production of high-quality software<br \/>\n9. Intelligent Software Engineering<br \/>\nSynergy between Artificial Intelligence and Software Engineering.<\/p>\n<p><strong>10. Software Reuse<\/strong><br \/>\nCode reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software, following the reusability principles.<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Code_reuse<\/p>\n<p><strong>11. Formal Methods<\/strong><br \/>\nIn computer science, specifically software engineering and hardware engineering, formal methods are a particular kind of mathematically based techniques for the specification, development and verification of software and hardware systems. https:\/\/en.wikipedia.org\/wiki\/Formal_methods<\/p>\n<p><strong>12. Context-Aware and Adaptive System<\/strong><br \/>\nContext-aware software systems and adaptive software systems sense changes in their environments, and respond by changing their behavior and\/or structure appropriately. Adaptive systems in contrast focus on how the system responds to an unanticipated environmental change.<br \/>\nhttps:\/\/link.springer.com\/chapter\/10.1007\/978-1-4939-1887-4_5<\/p>\n<p><strong>13. Mobile and Ubiquitous Software System<\/strong><br \/>\nUbiquitous computing. Ubiquitous computing (or &#8220;ubicomp&#8221;) is a concept in software engineering and computer science where computing is made to appear anytime and everywhere. In contrast to desktop computing, ubiquitous computing can occur using any device, in any location, and in any format. Often considered the successor to mobile computing, ubiquitous computing and, subsequently, pervasive computing, generally involve wireless communication and networking technologies, mobile devices, embedded systems, wearable computers, RFID tags, middleware and software agents<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Ubiquitous_computing<\/p>\n<h3>\u2022 Application for Priority Sectors<\/h3>\n<p>1. Society<br \/>\n2. Agriculture<br \/>\n3. Tourism<br \/>\n4. Smart City<br \/>\n5. Industry 4.0<br \/>\n6. Big Data Analytic<br \/>\n7. Virtual and Augmented Reality<br \/>\n8. Cybersecurity<br \/>\n9. Image Processing<\/p>\n<h3>\u2022 Software Tools and Environment<\/h3>\n<p><strong>1. Project Management<\/strong><br \/>\nSoftware project management is an art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Software_project_management<\/p>\n<p><strong>2. Data Warehouse<\/strong><br \/>\nthe data warehousing concept was intended to provide an architectural model for the flow of data from operational systems to decision support environments. The concept attempted to address the various problems associated with this flow, mainly the high costs associated with it<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Data_warehouse<\/p>\n<p><strong>3. CASE tools<\/strong><br \/>\nComputer-aided software engineering (CASE) is the domain of software tools used to design and implement applications. &#8230; CASE software is often associated with methods for the development of information systems together with automated tools that can be used in the software development process.<br \/>\nhttps:\/\/en.wikipedia.org\/wiki\/Computer-aided_software_engineering<\/p>\n<p><strong>4. Standard and Legal Issues<\/strong><br \/>\nframeworks for ICT policy: government, social and legal issues<br \/>\nlegal issues with mixed source software in a commercial environment<br \/>\nassurance<br \/>\ncompliance<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u2022 Software Process and Measurement Software measurement is a quantified attribute (see also: measurement) of a characteristic of a software product or the software process. It is a discipline within software engineering. The content of software measurement is defined and governed by ISO Standard ISO 15939 (software measurement process). https:\/\/en.wikipedia.org\/wiki\/Software_measurement 1. Requirement Engineering Requirements analysis, [&hellip;]<\/p>\n","protected":false},"author":6541,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[13],"tags":[33],"class_list":["post-337","post","type-post","status-publish","format-standard","hentry","category-research","tag-software-engineering"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/posts\/337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/users\/6541"}],"replies":[{"embeddable":true,"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/comments?post=337"}],"version-history":[{"count":0,"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/posts\/337\/revisions"}],"wp:attachment":[{"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/media?parent=337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/categories?post=337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/people.utm.my\/nurazaliah\/wp-json\/wp\/v2\/tags?post=337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}