软件设计与工程 家庭作业帮助服务 - Assignment Help

软件设计与工程家庭作业帮助

软件设计是为一套或多组问题实现软件解决方案的过程。软件设计的主要组成部分之一是软件需求分析(SRA)。 SRA是软件开发过程的一部分,其中列出了软件工程中使用的规范。

软件设计是将用户需求转化为适当形式的过程,可帮助程序员进行软件编码和实现。

为了评估用户需求,创建了SRS(软件需求规范)文档,而对于编码和实现,需要在软件方面具有更具体和详细的要求。该过程的输出可以直接用于编程语言的实现。

软件设计是SDLC(软件设计生命周期)的第一步,它将集中从问题域转移到解决方案领域。它试图说明如何满足SRS中提到的要求。

软件设计级别

软件设计产生三个层次的结果:

建筑设计 – 建筑设计是系统的最高抽象版本。它将软件识别为具有许多组件相互交互的系统。在这个层次上,设计人员获得了提出的解决方案域的想法。

高级设计 – 高级设计将“单一实体多组件”的架构设计概念打破了对子系统和模块的抽象化视图,并描绘了它们之间的相互作用。高级设计侧重于系统与其所有组件如何以模块的形式实现。它识别每个子系统的模块化结构以及它们之间的关系和相互作用。

详细设计 – 详细设计涉及前两个设计中被视为系统及其子系统的实现部分。它对于模块及其实现更加详细。它定义了每个模块及其接口与其他模块通信的逻辑结构。

模块化

模块化是将软件系统分为多个独立和独立的模块的技术,这些模块预计能够独立执行任务。这些模块可以作为整个软件的基本结构。设计师倾向于设计模块,以便它们可以单独和独立地执行和/或编译。

模块化设计无意中遵循“划分和征服”问题解决策略的规则,这是因为软件的模块化设计附带了许多其他优点。

模块化优势:

较小的组件更容易维护

程序可以根据功能方面进行划分

可以在程序中引入所需的抽象级别

具有高内聚性的组分可以重新使用

可以同时执行

希望从安全方面

并发性

所有软件都要按时执行。通过顺序执行,我们意味着编码指令将一个接一个地执行,这意味着在任何给定时间只有一部分程序被激活。说,一个软件有多个模块,那么在执行任何时候只有一个模块可以被发现是活动的。

在软件设计中,通过将软件分成多个独立的执行单元(如模块)并行执行并发,实现并发。换句话说,并发性为软件提供了能够彼此并行执行多个代码的能力。

程序员和设计人员必须识别那些可以并行执行的模块。

字处理器中的拼写检查功能是软件模块,它与文字处理器本身一起运行。

耦合和凝聚力

当软件程序模块化时,其任务根据某些特性分为几个模块。我们知道,模块是为了实现一些任务而放在一起的指令集。尽管如此,它们被认为是单一的实体,但是可以相互指称合作。有一些措施可以衡量模块设计的质量和它们之间的相互作用。这些措施称为耦合和内聚力。

凝聚

凝聚力是定义模块元素内的可靠性程度的度量。凝聚力越大,程序设计越好。

有七种类型的凝聚力,即 –

共同的凝聚力 – 这是计划外和随机的凝聚力,这可能是为了模块化将程序分解成更小的模块的结果。因为它是计划外的,它可能会对程序员造成混乱,一般不被接受。

逻辑内聚 – 逻辑分类元素放在一个模块中时,称为逻辑内聚。

时间凝聚力 – 当模块的元素组织起来使得它们在相似的时间点被处理时,称为时间凝聚力。

程序凝聚力 – 当模块的元素分组在一起时,它们是为了执行一个任务而被顺序执行的,它被称为程序内聚。

沟通凝聚力 – 当模块的元素组合在一起时,它们被顺序地执行并且在相同的数据(信息)上工作,它被称为交际凝聚力。

以整体的方式,这与我对软件工程方法的批评,包括当代的敏捷方法相似。他们主要处理开发新的维护软件,作为一种特殊情况。但如果我的经验是指导,维护是一般情况。在我的职业生涯中,我已经有更多的1.0版本。从瀑布到卢比到敏捷的方法很少,对于增强现有应用程序的典型工作是有效的。您很少能够从头开始设计/设计。

在过去的半个世纪里,有关于计算机科学领域应该被视为工程学科之一的一些争论。某些软件开发,设计和应用专家认为他们应该被称为“软件工程师”。到目前为止,大多数人都将软件工程领域作为一个合法的工程学科,这种趋势有可能随着时间的推移而继续加强。

虽然软件工程与其他工程学科(如化学,电气或机械)相比是一个年轻的领域,但它已经具有令人兴奋的历史,充满了早期成功和失败的宝贵经验。软件工程涵盖了源于计算机科学(如开发过程和方法学,测试和重构)和社会科学(如软件估算指标和技术,风险管理和质量保证)的各种主题。在软件工程的历史和基础上研究软件的人,在一定程度上可以受益匪浅。

典型的软件工程课程可能涉及以下主题的任何组合:

传统软件开发流程和方法(瀑布,UP,RUP等)

现代软件开发流程与方法(XP,SCRUM等)

软件开发生命周期(SDLC)模型

要求聚集

初始(抽象)和详细系统分析

初始(抽象)和详细的系统设计

测试方法(单元,白盒/黑盒,集成,用户感知,接口,测试驱动开发等)

软件维护和重构

软件体系结构与范式(2/3 / N-Tier系统,客户端 – 服务器模型,P2P模型,分布式计算,面向服务架构(SOA),RESTful范例,SOAP范例,WS- *标准,云计算,软件即服务(SaaS),平台即服务(PaaS)等)

项目管理

软件指标和估计技术

风险管理(规划与减缓)

软件质量保证

为了完成在线教育的辅导任务,我们的大学家庭作业帮助和在线辅导中心全天24小时,准备协助需要家庭作业的大学生帮助软件工程和设计的各个方面。我们的软件工程和设计导师可以帮助您的所有项目,无论大小,我们挑战你,以找到更好的在线软件工程和设计辅导任何地方。

Posted on March 30, 2017 in 计算机科学

Share the Story

Back to Top
Share This